core2/gc/parade.c done
This commit is contained in:
@@ -660,7 +660,7 @@ enum comusic_e
|
|||||||
COMUSIC_8B_DEACTIVATE_BRENTILDA,
|
COMUSIC_8B_DEACTIVATE_BRENTILDA,
|
||||||
COMUSIC_8C_JINJONATOR_POWERUP,
|
COMUSIC_8C_JINJONATOR_POWERUP,
|
||||||
JINGLE_MENACING_GRUNTILDA_A,
|
JINGLE_MENACING_GRUNTILDA_A,
|
||||||
MUSIC_CREDITS,
|
COMUSIC_8E_CREDITS,
|
||||||
JINGLE_MENACING_GRUNTILDA_B,
|
JINGLE_MENACING_GRUNTILDA_B,
|
||||||
JINGLE_END_OF_INTRO = 0x90,
|
JINGLE_END_OF_INTRO = 0x90,
|
||||||
MUSIC_GRUNTY_FALLING,
|
MUSIC_GRUNTY_FALLING,
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
<text x="22.0" y="14">core2</text>
|
<text x="22.0" y="14">core2</text>
|
||||||
</g>
|
</g>
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||||
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">81.1645%</text>
|
<text x="78.5" y="15" fill="#010101" fill-opacity=".3">81.2952%</text>
|
||||||
<text x="77.5" y="14">81.1645%</text>
|
<text x="77.5" y="14">81.2952%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -17,7 +17,7 @@
|
|||||||
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
|
<text x="75.0" y="14">Banjo-Kazooie (us.v10)</text>
|
||||||
</g>
|
</g>
|
||||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||||
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">84.1753%</text>
|
<text x="184.5" y="15" fill="#010101" fill-opacity=".3">84.2503%</text>
|
||||||
<text x="183.5" y="14">84.1753%</text>
|
<text x="183.5" y="14">84.2503%</text>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -1,230 +0,0 @@
|
|||||||
#include <ultra64.h>
|
|
||||||
#include "functions.h"
|
|
||||||
#include "variables.h"
|
|
||||||
|
|
||||||
extern void func_8028A8D0(void);
|
|
||||||
extern void func_8028F918(s32);
|
|
||||||
extern void func_80311714(int);
|
|
||||||
|
|
||||||
typedef struct struct_1C_s{
|
|
||||||
u8 map;
|
|
||||||
s8 exit;
|
|
||||||
s16 x; //0x2
|
|
||||||
char *str; //0x4
|
|
||||||
s8 unk8;
|
|
||||||
}struct1Cs;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* .data */
|
|
||||||
extern s8 D_8036DD9C[];
|
|
||||||
extern struct85s D_8036DDAC[];
|
|
||||||
|
|
||||||
/* .bss */
|
|
||||||
struct{
|
|
||||||
u8 unk0;
|
|
||||||
u8 unk1;
|
|
||||||
u8 pad2[1];
|
|
||||||
s8 unk3;
|
|
||||||
s8 unk4;
|
|
||||||
u8 unk5;
|
|
||||||
u8 unk6;
|
|
||||||
s8 unk7; //jiggy total
|
|
||||||
s32 unk8;
|
|
||||||
struct1Cs *unkC;
|
|
||||||
}D_803830F0;
|
|
||||||
NodeProp *D_80383100[20];
|
|
||||||
|
|
||||||
/* public */
|
|
||||||
void func_8031B554(void);
|
|
||||||
|
|
||||||
/* .code */
|
|
||||||
void func_8031ABA0(void) {
|
|
||||||
func_8031FBF8();
|
|
||||||
func_8031FBA0();
|
|
||||||
if (D_803830F0.unk8 != -1) {
|
|
||||||
func_802C5A3C(D_803830F0.unk8);
|
|
||||||
func_8033D13C(D_803830F0.unk8);
|
|
||||||
func_80347AA8();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031ABF8(void) {
|
|
||||||
D_803830F0.unk8 = func_802C5A30();
|
|
||||||
func_8030AFD8(1);
|
|
||||||
mapSavestate_free_all();
|
|
||||||
levelSpecificFlags_clear();
|
|
||||||
func_80347A7C();
|
|
||||||
func_8031FBF8();
|
|
||||||
func_8031FBA0();
|
|
||||||
func_803204E4(0x1F, 1);
|
|
||||||
if (D_803830F0.unk6 == 1) {
|
|
||||||
func_803204E4(0xC1, 1);
|
|
||||||
}
|
|
||||||
func_803228D8();
|
|
||||||
func_802E4A70();
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031AC8C(void) {
|
|
||||||
|
|
||||||
func_803228D8();
|
|
||||||
if (map_getLevel(D_803830F0.unkC->map) != level_get()) {
|
|
||||||
func_802E4A70();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (D_803830F0.unkC->exit < 0) {
|
|
||||||
func_8034BA7C(D_803830F0.unkC->map, 0x5A - D_803830F0.unkC->exit);
|
|
||||||
} else {
|
|
||||||
func_802E40D0(D_803830F0.unkC->map, 0x65);
|
|
||||||
func_802E412C(1, 8);
|
|
||||||
func_802E40C4(9);
|
|
||||||
}
|
|
||||||
D_803830F0.unk5 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031AD2C(s32);
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031AD2C.s")
|
|
||||||
|
|
||||||
void func_8031B010(void){
|
|
||||||
func_8031AD2C(6);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031B030(ActorMarker *caller, enum asset_e text_id, s32 arg2);
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031B030.s")
|
|
||||||
|
|
||||||
void func_8031B070(s32 arg0){
|
|
||||||
struct1Cs *v0 = D_803830F0.unkC;
|
|
||||||
print_bold_overlapping(v0->x, D_803830F0.unk3, -1.2f, v0->str);
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031B0B0(void) {
|
|
||||||
s32 sp34;
|
|
||||||
|
|
||||||
if ((map_get() == MAP_96_CS_END_BEACH_1) && mapSpecificFlags_get(4)) {
|
|
||||||
mapSpecificFlags_set(4, FALSE);
|
|
||||||
func_8031B554();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (func_803203FC(0x1F) != 0) {
|
|
||||||
func_8028A8D0();
|
|
||||||
switch (D_803830F0.unk0) {
|
|
||||||
case 3:
|
|
||||||
if (D_803830F0.unk5 == 0) {
|
|
||||||
if (map_get() == D_803830F0.unkC->map) {
|
|
||||||
if (D_803830F0.unk6 == 0) {
|
|
||||||
sp34 = 0xA0;
|
|
||||||
if (D_803830F0.unkC->exit >= 0)
|
|
||||||
sp34 = 0xA8;
|
|
||||||
timedFunc_set_1(1.0f, (TFQM1)func_80311714, 0);
|
|
||||||
func_80324DBC(1.0f, D_803830F0.unk1 + 0x11AF, sp34, NULL, NULL, func_8031B030, NULL);
|
|
||||||
timedFunc_set_1(1.0f, (TFQM1)func_80311714, 1);
|
|
||||||
} else if (D_803830F0.unkC->exit >= 0) {
|
|
||||||
func_8028F918(2);
|
|
||||||
}
|
|
||||||
timedFunc_set_1(1.0f, (TFQM1)func_8031AD2C, 4);
|
|
||||||
D_803830F0.unk5 = 1U;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
func_8031B070(D_803830F0.unk1);
|
|
||||||
D_803830F0.unk4 ++;
|
|
||||||
D_803830F0.unk3 += D_8036DD9C[D_803830F0.unk4];
|
|
||||||
if (D_803830F0.unk4 == 0xC) {
|
|
||||||
func_8031AD2C(5);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
func_8031B070(D_803830F0.unk1);
|
|
||||||
return;
|
|
||||||
case 6:
|
|
||||||
func_8031B070(D_803830F0.unk1);
|
|
||||||
D_803830F0.unk4--;
|
|
||||||
D_803830F0.unk3 -= D_8036DD9C[D_803830F0.unk4];
|
|
||||||
if (D_803830F0.unk4 == 0) {
|
|
||||||
func_8031AD2C(7);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031B2F0(void){}
|
|
||||||
|
|
||||||
void func_8031B2F8(void){
|
|
||||||
func_803204E4(0x20, FALSE);
|
|
||||||
func_803204E4(0x1F, TRUE);
|
|
||||||
if(func_80320454(0xC0, 0))
|
|
||||||
func_8031AD2C(2);
|
|
||||||
else
|
|
||||||
func_8031AD2C(1);
|
|
||||||
|
|
||||||
}
|
|
||||||
#ifndef NONMATCHING
|
|
||||||
#pragma GLOBAL_ASM("asm/nonmatchings/core2/code_93C10/func_8031B354.s")
|
|
||||||
#else
|
|
||||||
void func_8031B354(void) {
|
|
||||||
f32 sp40[3];
|
|
||||||
u32 var_s0;
|
|
||||||
u32 temp_v0;
|
|
||||||
s32 var_s2;
|
|
||||||
|
|
||||||
if (func_803203FC(0x20) != 0) {
|
|
||||||
func_8031B2F8();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (func_803203FC(0x1F) != 0) {
|
|
||||||
func_80347A14(0);
|
|
||||||
if ((D_803830F0.unk0 == 3)){
|
|
||||||
D_803830F0.unk5 = 0;
|
|
||||||
if(D_803830F0.unkC->exit >= 0) {
|
|
||||||
func_802BBC58(1);
|
|
||||||
set_camera_to_node(D_803830F0.unkC->exit);
|
|
||||||
if (D_803830F0.unkC->unk8 > 0) {
|
|
||||||
temp_v0 = func_80304FC4(&D_8036DDAC, &D_80383100, 0x14);
|
|
||||||
for(var_s2 = FALSE, var_s0 = 0; (var_s0 < temp_v0) && (var_s2 == FALSE); var_s0++){
|
|
||||||
if (temp_v0 > 0) {
|
|
||||||
if (nodeprop_getRadius(D_80383100[var_s0]) == D_803830F0.unkC->unk8) {
|
|
||||||
var_s2 = TRUE;
|
|
||||||
nodeprop_getPosition(D_80383100[var_s0], sp40);
|
|
||||||
func_8028F85C(sp40);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (var_s2 == FALSE) {
|
|
||||||
func_802BAEF4(sp40);
|
|
||||||
func_8028F85C(sp40);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
func_8031AD2C(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int func_8031B4CC(void){
|
|
||||||
return ((D_803830F0.unkC != NULL) && (D_803830F0.unkC[0].exit < 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
int func_8031B4F4(void){
|
|
||||||
return (D_803830F0.unkC != NULL) ? D_803830F0.unkC->unk8 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031B51C(void){
|
|
||||||
if (func_803203FC(0x1F)) return;
|
|
||||||
|
|
||||||
func_803204E4(0x20, TRUE);
|
|
||||||
func_8031B354();
|
|
||||||
}
|
|
||||||
|
|
||||||
void func_8031B554(void){
|
|
||||||
|
|
||||||
if (func_803203FC(0x1F)) return;
|
|
||||||
|
|
||||||
func_803204E4(0x20, TRUE);
|
|
||||||
func_803204E4(0xC0, TRUE);
|
|
||||||
D_803830F0.unk7 = jiggyscore_total();
|
|
||||||
func_8031B354();
|
|
||||||
}
|
|
@@ -253,7 +253,7 @@ void func_80334B20(enum map_e arg0, s32 arg1, s32 arg2) {
|
|||||||
func_802C8F40();
|
func_802C8F40();
|
||||||
func_8034F774();
|
func_8034F774();
|
||||||
func_80350174();
|
func_80350174();
|
||||||
func_8031B354();
|
gcparade_init();
|
||||||
func_80351998();
|
func_80351998();
|
||||||
func_802BC2CC(D_803835D0.unk8);
|
func_802BC2CC(D_803835D0.unk8);
|
||||||
func_802D63D4();
|
func_802D63D4();
|
||||||
@@ -345,7 +345,7 @@ s32 func_80334ECC(void) {
|
|||||||
func_80350CA4();
|
func_80350CA4();
|
||||||
func_8031B65C();
|
func_8031B65C();
|
||||||
func_80310D2C();
|
func_80310D2C();
|
||||||
func_8031B0B0();
|
gcparade_update();
|
||||||
overlay_update();
|
overlay_update();
|
||||||
func_80321924();
|
func_80321924();
|
||||||
func_80334428();
|
func_80334428();
|
||||||
|
405
src/core2/gc/parade.c
Normal file
405
src/core2/gc/parade.c
Normal file
@@ -0,0 +1,405 @@
|
|||||||
|
#include <ultra64.h>
|
||||||
|
#include "functions.h"
|
||||||
|
#include "variables.h"
|
||||||
|
|
||||||
|
extern void func_8028A8D0(void);
|
||||||
|
extern void func_8028F918(s32);
|
||||||
|
extern void func_80311714(int);
|
||||||
|
extern void func_803204E4(s32, s32);
|
||||||
|
|
||||||
|
typedef struct struct_1C_s{
|
||||||
|
u8 map;
|
||||||
|
s8 exit;
|
||||||
|
s16 x; //0x2
|
||||||
|
char *str; //0x4
|
||||||
|
s8 unk8;
|
||||||
|
}ParadeInfo;
|
||||||
|
|
||||||
|
enum parade_e {
|
||||||
|
PARADE_0_POST_FURNACE_FUN,
|
||||||
|
PARADE_1_POST_GRUNTY_BATTLE
|
||||||
|
};
|
||||||
|
|
||||||
|
enum parade_state_e {
|
||||||
|
PARADE_STATE_0_NONE,
|
||||||
|
PARADE_STATE_1_INIT_FF_PARADE,
|
||||||
|
PARADE_STATE_2_INIT_FINAL_PARADE,
|
||||||
|
PARADE_STATE_3_WARP,
|
||||||
|
PARADE_STATE_4_NAME_APPEAR,
|
||||||
|
PARADE_STATE_5_WAIT_ON_NAME,
|
||||||
|
PARADE_STATE_6_NAME_DISAPPEAR,
|
||||||
|
PARADE_STATE_7_GOTO_NEXT,
|
||||||
|
PARADE_STATE_8_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
/* .data */
|
||||||
|
ParadeInfo D_8036D9A0[0x1B] = {
|
||||||
|
{MAP_8E_GL_FURNACE_FUN, 0x14, 90, "GRUNTILDA", 0},
|
||||||
|
{MAP_8E_GL_FURNACE_FUN, 0x13, 110, "TOOTY", 0},
|
||||||
|
{MAP_1_SM_SPIRAL_MOUNTAIN, 0x13, 100, "BOTTLES", 0},
|
||||||
|
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x2D, 130, "JINJO", 0},
|
||||||
|
{MAP_E_MM_MUMBOS_SKULL, 0x02, 60, "MUMBO JUMBO", 0},
|
||||||
|
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x2F, 125, "JU-JU", 0},
|
||||||
|
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x2C, 115, "CONGA", 0},
|
||||||
|
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x2B, 110, "CHIMPY", 0},
|
||||||
|
{MAP_74_GL_GV_PUZZLE, 0x08, 95, "BRENTILDA", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x22, 50, "CAPTAIN BLUBBER", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x23, 120, "NIPPER", 0},
|
||||||
|
{MAP_B_CC_CLANKERS_CAVERN, 0x0B, 105, "CLANKER", 0},
|
||||||
|
{MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x23, 95, "TANKTUP", 0},
|
||||||
|
{MAP_10_BGS_MR_VILE, 0x03, 100, "MR. VILE", 0},
|
||||||
|
{MAP_11_BGS_TIPTUP, 0x08, 115, "TIPTUP", 0},
|
||||||
|
{MAP_27_FP_FREEZEEZY_PEAK, 0x3D, 115, "BOGGY", 0},
|
||||||
|
{MAP_27_FP_FREEZEEZY_PEAK, 0x3E, 110, "WOZZA", 0},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x39, 100, "TRUNKER", 0},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x38, 125, "GOBI", 0},
|
||||||
|
{MAP_16_GV_RUBEES_CHAMBER, 0x04, 35, "RUBEE AND TOOTS", 0},
|
||||||
|
{MAP_26_MMM_NAPPERS_ROOM, 0x06, 110, "NAPPER", 0},
|
||||||
|
{MAP_2C_MMM_BATHROOM, 0x03, 115, "LOGGO", 0},
|
||||||
|
{MAP_31_RBB_RUSTY_BUCKET_BAY, 0x27, 105, "SNORKEL", 0},
|
||||||
|
{MAP_44_CCW_SUMMER, 0x0F, 100, "GNAWTY", 0},
|
||||||
|
{MAP_46_CCW_WINTER, 0x0C, 125, "EYRIE", 0},
|
||||||
|
{MAP_5E_CCW_SPRING_NABNUTS_HOUSE, 0x01, 110, "NABNUT", 0},
|
||||||
|
{MAP_1_SM_SPIRAL_MOUNTAIN, 0xFD, 20, "BANJO AND KAZOOIE", 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
ParadeInfo D_8036DAE4[0x3A] ={
|
||||||
|
{MAP_93_GL_DINGPOT, 0x11, 105, "DINGPOT", 0},
|
||||||
|
{MAP_84_CS_UNUSED_MACHINE_ROOM, 0x00, 107, "KLUNGO", 0},
|
||||||
|
{MAP_1_SM_SPIRAL_MOUNTAIN, 0x29, 110, "TOPPER", 6},
|
||||||
|
{MAP_1_SM_SPIRAL_MOUNTAIN, 0x27, 118, "BAWL", 7},
|
||||||
|
{MAP_1_SM_SPIRAL_MOUNTAIN, 0x28, 75, "COLLIWOBBLE", 8},
|
||||||
|
{MAP_1_SM_SPIRAL_MOUNTAIN, 0x2A, 100, "QUARRIE", 0},
|
||||||
|
{MAP_71_GL_STATUE_ROOM, 0x0D, 85, "GRUNTLING", 0},
|
||||||
|
{MAP_C_MM_TICKERS_TOWER, 0x09, 113, "TICKER", 0},
|
||||||
|
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x30, 105, "BIGBUTT", 0},
|
||||||
|
{MAP_2_MM_MUMBOS_MOUNTAIN, 0x2E, 105, "GRUBLIN", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x24, 120, "LEAKY", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x25, 105, "LOCKUP", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x26, 67, "LITTLE LOCKUP", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x27, 100, "YUM-YUM", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x28, 110, "SNIPPET", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x29, 95, "SHRAPNEL", 0},
|
||||||
|
{MAP_7_TTC_TREASURE_TROVE_COVE, 0x2A, 105, "SNACKER", 14},
|
||||||
|
{MAP_B_CC_CLANKERS_CAVERN, 0x1A, 110, "GLOOP", 0},
|
||||||
|
{MAP_B_CC_CLANKERS_CAVERN, 0x1B, 60, "GRILLE CHOMPA", 1},
|
||||||
|
{MAP_B_CC_CLANKERS_CAVERN, 0x1C, 70, "MUTIE-SNIPPET", 0},
|
||||||
|
{MAP_22_CC_INSIDE_CLANKER, 0x0B, 93, "WHIPLASH", 0},
|
||||||
|
{MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x24, 100, "CROCTUS", 0},
|
||||||
|
{MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x25, 115, "FLIBBIT", 0},
|
||||||
|
{MAP_D_BGS_BUBBLEGLOOP_SWAMP, 0x26, 90, "BUZZBOMB", 0},
|
||||||
|
{MAP_11_BGS_TIPTUP, 0x09, 45, "THE TIPTUP CHOIR", 0},
|
||||||
|
{MAP_41_FP_BOGGYS_IGLOO, 0x05, 105, "GROGGY", 0},
|
||||||
|
{MAP_41_FP_BOGGYS_IGLOO, 0x06, 117, "SOGGY", 0},
|
||||||
|
{MAP_41_FP_BOGGYS_IGLOO, 0x07, 110, "MOGGY", 0},
|
||||||
|
{MAP_27_FP_FREEZEEZY_PEAK, 0x3F, 65, "THE TWINKLIES", -1},
|
||||||
|
{MAP_27_FP_FREEZEEZY_PEAK, 0x40, 37, "TWINKLY MUNCHER", -2},
|
||||||
|
{MAP_27_FP_FREEZEEZY_PEAK, 0x41, 100, "SIR SLUSH", 0},
|
||||||
|
{MAP_27_FP_FREEZEEZY_PEAK, 0x42, 107, "CHINKER", 0},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x3A, 120, "JINXY", -3},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x3B, 40, "THE ANCIENT ONES", 0},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x3C, 110, "GRABBA", 2},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x3D, 110, "SCABBY", 0},
|
||||||
|
{MAP_12_GV_GOBIS_VALLEY, 0x3E, 113, "SLAPPA", 3},
|
||||||
|
{MAP_13_GV_MEMORY_GAME, 0x03, 90, "MUM-MUM", 0},
|
||||||
|
{MAP_16_GV_RUBEES_CHAMBER, 0x05, 115, "HISTUP", 0},
|
||||||
|
{MAP_1C_MMM_CHURCH, 0x05, 90, "MOTZAND", 0},
|
||||||
|
{MAP_24_MMM_TUMBLARS_SHED, 0x02, 95, "TUMBLAR", 0},
|
||||||
|
{MAP_28_MMM_EGG_ROOM, 0x01, 0x20, "PORTRAIT CHOMPA", 4},
|
||||||
|
{MAP_1D_MMM_CELLAR, 0x0A, 110, "TEE-HEE", 11},
|
||||||
|
{MAP_2C_MMM_BATHROOM, 0x04, 120, "LIMBO", 0},
|
||||||
|
{MAP_1B_MMM_MAD_MONSTER_MANSION, 0x28, 118, "RIPPER", 12},
|
||||||
|
{MAP_1B_MMM_MAD_MONSTER_MANSION, 0x29, 117, "NIBBLY", 0},
|
||||||
|
{MAP_38_RBB_CONTAINER_3, 0x02, 83, "BOOM BOX", 13},
|
||||||
|
{MAP_3A_RBB_BOSS_BOOM_BOX, 0x04, 50, "BOSS BOOM BOX", 0},
|
||||||
|
{MAP_31_RBB_RUSTY_BUCKET_BAY, 0x28, 105, "GRIMLET", 9},
|
||||||
|
{MAP_31_RBB_RUSTY_BUCKET_BAY, 0x29, 105, "FLOTSAM", 0},
|
||||||
|
{MAP_3C_RBB_KITCHEN, 0x05, 50, "SEAMAN GRUBLIN", 0},
|
||||||
|
{MAP_35_RBB_WAREHOUSE, 0x06, 110, "CHUMP", 0},
|
||||||
|
{MAP_44_CCW_SUMMER, 0x10, 87, "SNAREBEAR", 10},
|
||||||
|
{MAP_45_CCW_AUTUMN, 0x14, 85, "BIG CLUCKER", 5},
|
||||||
|
{MAP_5B_CCW_SPRING_ZUBBA_HIVE, 0x04, 78, "THE ZUBBAS", 0},
|
||||||
|
{MAP_46_CCW_WINTER, 0x0E, 63, "GRUBLIN HOOD", 0},
|
||||||
|
{MAP_66_CCW_SUMMER_WHIPCRACK_ROOM, 0x06, 83, "WHIPCRACK", 0},
|
||||||
|
{MAP_72_GL_BGS_LOBBY, 0x04, 110, "CHEATO", 0}
|
||||||
|
};
|
||||||
|
s8 D_8036DD9C[] = {1, 1, 1, 1, 11, 8, 6, 4, 3, 2, -1, -1, 0};
|
||||||
|
s32 D_8036DDAC[] = {0x379, -1};
|
||||||
|
|
||||||
|
/* .bss */
|
||||||
|
struct{
|
||||||
|
u8 state;
|
||||||
|
u8 indx;
|
||||||
|
u8 count;
|
||||||
|
s8 y_position;
|
||||||
|
s8 scroll_frame;
|
||||||
|
u8 unk5;
|
||||||
|
u8 parade_id;
|
||||||
|
u8 jiggyscore; //jiggy total
|
||||||
|
s32 unk8;
|
||||||
|
ParadeInfo *parade_element;
|
||||||
|
}D_803830F0;
|
||||||
|
NodeProp *D_80383100[20];
|
||||||
|
|
||||||
|
/* public */
|
||||||
|
void func_8031B554(void);
|
||||||
|
void gcparade_setState(enum parade_state_e next_state);
|
||||||
|
|
||||||
|
/* .code */
|
||||||
|
void func_8031ABA0(void) {
|
||||||
|
func_8031FBF8();
|
||||||
|
func_8031FBA0();
|
||||||
|
if (D_803830F0.unk8 != -1) {
|
||||||
|
func_802C5A3C(D_803830F0.unk8);
|
||||||
|
func_8033D13C(D_803830F0.unk8);
|
||||||
|
func_80347AA8();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_8031ABF8(void) {
|
||||||
|
D_803830F0.unk8 = func_802C5A30();
|
||||||
|
func_8030AFD8(1);
|
||||||
|
mapSavestate_free_all();
|
||||||
|
levelSpecificFlags_clear();
|
||||||
|
func_80347A7C();
|
||||||
|
func_8031FBF8();
|
||||||
|
func_8031FBA0();
|
||||||
|
func_803204E4(0x1F, 1);
|
||||||
|
if (D_803830F0.parade_id == PARADE_1_POST_GRUNTY_BATTLE) {
|
||||||
|
func_803204E4(0xC1, 1);
|
||||||
|
}
|
||||||
|
func_803228D8();
|
||||||
|
func_802E4A70();
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_8031AC8C(void) {
|
||||||
|
|
||||||
|
func_803228D8();
|
||||||
|
if (map_getLevel(D_803830F0.parade_element->map) != level_get()) {
|
||||||
|
func_802E4A70();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (D_803830F0.parade_element->exit < 0) {
|
||||||
|
func_8034BA7C(D_803830F0.parade_element->map, 0x5A - D_803830F0.parade_element->exit);
|
||||||
|
} else {
|
||||||
|
func_802E40D0(D_803830F0.parade_element->map, 0x65);
|
||||||
|
func_802E412C(1, 8);
|
||||||
|
func_802E40C4(9);
|
||||||
|
}
|
||||||
|
D_803830F0.unk5 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void gcparade_setState(enum parade_state_e next_state) {
|
||||||
|
switch (next_state) {
|
||||||
|
case PARADE_STATE_1_INIT_FF_PARADE: //parade 0 init
|
||||||
|
D_803830F0.parade_element = D_8036D9A0;
|
||||||
|
D_803830F0.indx = 0;
|
||||||
|
D_803830F0.parade_id = PARADE_0_POST_FURNACE_FUN;
|
||||||
|
D_803830F0.count = 0x1B;
|
||||||
|
func_8025A70C(COMUSIC_8E_CREDITS);
|
||||||
|
next_state = PARADE_STATE_3_WARP;
|
||||||
|
func_8031AC8C();
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_2_INIT_FINAL_PARADE: //parade 1 init
|
||||||
|
func_803204E4(0xC1, 1);
|
||||||
|
D_803830F0.parade_element = D_8036DAE4;
|
||||||
|
D_803830F0.indx = 0;
|
||||||
|
D_803830F0.parade_id = PARADE_1_POST_GRUNTY_BATTLE;
|
||||||
|
D_803830F0.count = 0x3A;
|
||||||
|
func_8025A55C(0, 0x1388, 0xB);
|
||||||
|
func_8025AB00();
|
||||||
|
func_8025A70C(COMUSIC_8E_CREDITS);
|
||||||
|
next_state = PARADE_STATE_3_WARP;
|
||||||
|
func_8031AC8C();
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_3_WARP:
|
||||||
|
func_803228D8();
|
||||||
|
if (map_getLevel(D_803830F0.parade_element->map) != level_get()) {
|
||||||
|
func_802E4A70();
|
||||||
|
}
|
||||||
|
if (D_803830F0.parade_element->exit < 0) {
|
||||||
|
func_8034BA7C(D_803830F0.parade_element->map, 0x5A - D_803830F0.parade_element->exit);
|
||||||
|
} else {
|
||||||
|
func_802E412C(1, 8);
|
||||||
|
func_802E40D0(D_803830F0.parade_element->map, 0x65);
|
||||||
|
func_802E40C4(1);
|
||||||
|
}
|
||||||
|
D_803830F0.unk5 = 1;
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_4_NAME_APPEAR:
|
||||||
|
D_803830F0.scroll_frame = -1;
|
||||||
|
D_803830F0.y_position = -0x10;
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_5_WAIT_ON_NAME:
|
||||||
|
if ((D_803830F0.parade_id == 1) && (D_803830F0.parade_element->exit >= 0)) {
|
||||||
|
timedFunc_set_1(2.0f, (TFQM1)gcparade_setState, PARADE_STATE_6_NAME_DISAPPEAR);// queue state transition
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_7_GOTO_NEXT:
|
||||||
|
D_803830F0.indx++;
|
||||||
|
D_803830F0.parade_element++;
|
||||||
|
timedFunc_set_1(0.25f, (TFQM1)gcparade_setState, (D_803830F0.indx == D_803830F0.count) ? PARADE_STATE_8_END : PARADE_STATE_3_WARP);
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_8_END:
|
||||||
|
func_803204E4(0x1F, 0);
|
||||||
|
func_803204E4(0xC1, 0);
|
||||||
|
func_802E412C(1, 8);
|
||||||
|
func_802E40C4(0xA);
|
||||||
|
if (D_803830F0.parade_id == 0) {
|
||||||
|
func_802E40D0(MAP_94_CS_INTRO_SPIRAL_7, 0);
|
||||||
|
} else if (D_803830F0.jiggyscore < 100) {
|
||||||
|
func_802E40D0(MAP_20_CS_END_NOT_100, 0);
|
||||||
|
} else {
|
||||||
|
func_802E40D0(MAP_95_CS_END_ALL_100, 0);
|
||||||
|
}
|
||||||
|
comusic_8025AB44(COMUSIC_8E_CREDITS, 0, 1000);
|
||||||
|
func_8025AABC(COMUSIC_8E_CREDITS);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
D_803830F0.state = next_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_8031B010(void){
|
||||||
|
gcparade_setState(PARADE_STATE_6_NAME_DISAPPEAR);
|
||||||
|
}
|
||||||
|
|
||||||
|
void gcparade_textCallback(ActorMarker *caller, enum asset_e text_id, s32 arg2){
|
||||||
|
if(D_803830F0.parade_element->exit >= 0){
|
||||||
|
gcparade_setState(PARADE_STATE_6_NAME_DISAPPEAR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void gcparade_print(s32 index){
|
||||||
|
ParadeInfo *v0 = D_803830F0.parade_element;
|
||||||
|
print_bold_overlapping(v0->x, D_803830F0.y_position, -1.2f, v0->str);
|
||||||
|
}
|
||||||
|
|
||||||
|
void gcparade_update(void) {
|
||||||
|
s32 sp34;
|
||||||
|
|
||||||
|
if ((map_get() == MAP_96_CS_END_BEACH_1) && mapSpecificFlags_get(4)) {
|
||||||
|
mapSpecificFlags_set(4, FALSE);
|
||||||
|
func_8031B554();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (func_803203FC(0x1F) != 0) {
|
||||||
|
func_8028A8D0();
|
||||||
|
switch (D_803830F0.state) {
|
||||||
|
case PARADE_STATE_3_WARP:
|
||||||
|
if (D_803830F0.unk5 == 0) {
|
||||||
|
if (map_get() == D_803830F0.parade_element->map) {
|
||||||
|
if (D_803830F0.parade_id == 0) {
|
||||||
|
sp34 = 0xA0;
|
||||||
|
if (D_803830F0.parade_element->exit >= 0)
|
||||||
|
sp34 = 0xA8;
|
||||||
|
timedFunc_set_1(1.0f, (TFQM1)func_80311714, 0);
|
||||||
|
func_80324DBC(1.0f, D_803830F0.indx + 0x11AF, sp34, NULL, NULL, gcparade_textCallback, NULL);
|
||||||
|
timedFunc_set_1(1.0f, (TFQM1)func_80311714, 1);
|
||||||
|
} else if (D_803830F0.parade_element->exit >= 0) {
|
||||||
|
func_8028F918(2);
|
||||||
|
}
|
||||||
|
timedFunc_set_1(1.0f, (TFQM1)gcparade_setState, PARADE_STATE_4_NAME_APPEAR);
|
||||||
|
D_803830F0.unk5 = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_4_NAME_APPEAR:
|
||||||
|
gcparade_print(D_803830F0.indx);
|
||||||
|
D_803830F0.scroll_frame++; //name scroll down on screen
|
||||||
|
D_803830F0.y_position += D_8036DD9C[D_803830F0.scroll_frame];
|
||||||
|
if (D_803830F0.scroll_frame == 0xC) {
|
||||||
|
gcparade_setState(PARADE_STATE_5_WAIT_ON_NAME);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case PARADE_STATE_5_WAIT_ON_NAME: //name on screen (wait)
|
||||||
|
gcparade_print(D_803830F0.indx);
|
||||||
|
return;
|
||||||
|
case PARADE_STATE_6_NAME_DISAPPEAR:// name scroll up off screen
|
||||||
|
gcparade_print(D_803830F0.indx);
|
||||||
|
D_803830F0.scroll_frame--;
|
||||||
|
D_803830F0.y_position -= D_8036DD9C[D_803830F0.scroll_frame];
|
||||||
|
if (D_803830F0.scroll_frame == 0) {
|
||||||
|
gcparade_setState(PARADE_STATE_7_GOTO_NEXT);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_8031B2F0(void){}
|
||||||
|
|
||||||
|
void gcparade_start(void){
|
||||||
|
func_803204E4(0x20, FALSE);
|
||||||
|
func_803204E4(0x1F, TRUE);
|
||||||
|
if(func_80320454(0xC0, 0))
|
||||||
|
gcparade_setState(PARADE_STATE_2_INIT_FINAL_PARADE);
|
||||||
|
else
|
||||||
|
gcparade_setState(PARADE_STATE_1_INIT_FF_PARADE);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void gcparade_init(void) {
|
||||||
|
s32 var_s0;
|
||||||
|
f32 sp40[3];
|
||||||
|
s32 temp_v0;
|
||||||
|
s32 var_s2;
|
||||||
|
|
||||||
|
if (func_803203FC(0x20)) {
|
||||||
|
gcparade_start();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (func_803203FC(0x1F)) {
|
||||||
|
func_80347A14(0);
|
||||||
|
if ((D_803830F0.state == 3)){
|
||||||
|
var_s2 = FALSE;
|
||||||
|
D_803830F0.unk5 = 0;
|
||||||
|
if(D_803830F0.parade_element->exit >= 0) {
|
||||||
|
func_802BBC58(1);
|
||||||
|
set_camera_to_node(D_803830F0.parade_element->exit);
|
||||||
|
if (D_803830F0.parade_element->unk8 > 0) {
|
||||||
|
temp_v0 = func_80304FC4(&D_8036DDAC, &D_80383100, 0x14);
|
||||||
|
for(var_s0 = 0;(var_s0 < temp_v0) && !var_s2; var_s0++ ){
|
||||||
|
if (nodeprop_getRadius(D_80383100[var_s0]) == D_803830F0.parade_element->unk8) {
|
||||||
|
nodeprop_getPosition(D_80383100[var_s0], sp40);
|
||||||
|
func_8028F85C(sp40);
|
||||||
|
var_s2 = TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!var_s2) {
|
||||||
|
func_802BAEF4(sp40);
|
||||||
|
func_8028F85C(sp40);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
gcparade_setState(PARADE_STATE_0_NONE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int func_8031B4CC(void){
|
||||||
|
return ((D_803830F0.parade_element != NULL) && (D_803830F0.parade_element->exit < 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
int func_8031B4F4(void){
|
||||||
|
return (D_803830F0.parade_element != NULL) ? D_803830F0.parade_element->unk8 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_8031B51C(void){
|
||||||
|
if (func_803203FC(0x1F)) return;
|
||||||
|
|
||||||
|
func_803204E4(0x20, TRUE);
|
||||||
|
gcparade_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void func_8031B554(void){
|
||||||
|
|
||||||
|
if (func_803203FC(0x1F)) return;
|
||||||
|
|
||||||
|
func_803204E4(0x20, TRUE);
|
||||||
|
func_803204E4(0xC0, TRUE);
|
||||||
|
D_803830F0.jiggyscore = jiggyscore_total();
|
||||||
|
gcparade_init();
|
||||||
|
}
|
@@ -299,7 +299,7 @@ segments:
|
|||||||
- [0x8E270, c, gc/zoombox] #DONE
|
- [0x8E270, c, gc/zoombox] #DONE
|
||||||
- [0x91E10, c, code_91E10]
|
- [0x91E10, c, code_91E10]
|
||||||
- [0x935F0, c, code_935F0] #DONE #chminigmae
|
- [0x935F0, c, code_935F0] #DONE #chminigmae
|
||||||
- [0x93C10, c, code_93C10]
|
- [0x93C10, c, gc/parade] #DONE
|
||||||
- [0x94620, c, code_94620] #DONE
|
- [0x94620, c, code_94620] #DONE
|
||||||
- [0x94780, c, code_94780] #DONE
|
- [0x94780, c, code_94780] #DONE
|
||||||
- [0x94A20, c, code_94A20]
|
- [0x94A20, c, code_94A20]
|
||||||
@@ -548,6 +548,8 @@ segments:
|
|||||||
- [0xE56A0, bin, data_E56A0]
|
- [0xE56A0, bin, data_E56A0]
|
||||||
- [0xE5730, .data, gc/zoombox]
|
- [0xE5730, .data, gc/zoombox]
|
||||||
- [0xE69B0, bin, data_E69B0]
|
- [0xE69B0, bin, data_E69B0]
|
||||||
|
- [0xE6A10, .data, gc/parade]
|
||||||
|
- [0xE6E30, bin, data_E6E30]
|
||||||
- [0xE7330, .data, code_9B990]
|
- [0xE7330, .data, code_9B990]
|
||||||
- [0xE7490, .data, code_9D640]
|
- [0xE7490, .data, code_9D640]
|
||||||
- [0xE75D0, bin, data_E75D0]
|
- [0xE75D0, bin, data_E75D0]
|
||||||
@@ -773,7 +775,8 @@ segments:
|
|||||||
# - [0xF1960, bin, data_F1960]
|
# - [0xF1960, bin, data_F1960]
|
||||||
- [0xF19C0, .rodata, code_91E10]
|
- [0xF19C0, .rodata, code_91E10]
|
||||||
- [0xF1A00, .rodata, code_935F0]
|
- [0xF1A00, .rodata, code_935F0]
|
||||||
- [0xF1A20, bin, data_F1A20]
|
- [0xF1A20, .rodata, gc/parade]
|
||||||
|
- [0xF1DA0, bin, data_F1DA0]
|
||||||
- [0xF1DC0, .rodata, code_9A9D0]
|
- [0xF1DC0, .rodata, code_9A9D0]
|
||||||
- [0xF1DF0, .rodata, code_9B180]
|
- [0xF1DF0, .rodata, code_9B180]
|
||||||
- [0xF1E10, .rodata, code_9C170]
|
- [0xF1E10, .rodata, code_9C170]
|
||||||
@@ -1041,7 +1044,7 @@ segments:
|
|||||||
- [0xf2c00, .bss, code_8DC20]
|
- [0xf2c00, .bss, code_8DC20]
|
||||||
- [0xf2c00, .bss, gc/zoombox]
|
- [0xf2c00, .bss, gc/zoombox]
|
||||||
- [0xf2c00, .bss, code_91E10]
|
- [0xf2c00, .bss, code_91E10]
|
||||||
- [0xf2c00, .bss, code_93C10]
|
- [0xf2c00, .bss, gc/parade]
|
||||||
- [0xf2c00, .bss, code_94620]
|
- [0xf2c00, .bss, code_94620]
|
||||||
- [0xf2c00, .bss, code_94780]
|
- [0xf2c00, .bss, code_94780]
|
||||||
- [0xf2c00, .bss, code_94A20]
|
- [0xf2c00, .bss, code_94A20]
|
||||||
|
Reference in New Issue
Block a user