diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 0772ac6ac..8ffca65e2 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -16654,7 +16654,7 @@ glabel ai01d4 * @cmd 01d5 */ GLOBAL_ASM( -glabel ai01d5 +glabel aiShowCutsceneChrs /* f05f834: 3c08800a */ lui $t0,0x800a /* f05f838: 25089fc0 */ addiu $t0,$t0,-24640 /* f05f83c: 8d0e0434 */ lw $t6,0x434($t0) @@ -16764,6 +16764,39 @@ glabel ai01d5 /* f05f9bc: 00001025 */ or $v0,$zero,$zero ); +//bool aiShowCutsceneChrs(void) +//{ +// u8 *cmd = g_Vars.ailist + g_Vars.aioffset; +// struct chrdata *chr; +// s32 i; +// +// if (cmd[2]) { +// // Show chrs +// for (i = getNumChrs() - 1; i >= 0; i--) { +// chr = &g_Chrs[i]; +// +// if (chr->chrnum >= 0 && chr->pos && (chr->hidden2 & 1)) { +// chr->hidden2 = chr->hidden2 & ~1; +// chr->chrflags = chr->chrflags & ~0x00000400; +// } +// } +// } else { +// // Hide chrs +// for (i = getNumChrs() - 1; i >= 0; i--) { +// chr = &g_Chrs[i]; +// +// if (chr->chrnum >= 0 && chr->pos && (chr->chrflags & 0x00800400) == 0) { +// chr->hidden2 = chr->hidden2 | 1; +// chr->chrflags = chr->chrflags | 0x00000400; +// } +// } +// } +// +// g_Vars.aioffset += 3; +// +// return false; +//} + /** * @cmd 01d6 */ diff --git a/src/include/game/chr/chraicommands.h b/src/include/game/chr/chraicommands.h index 37b55fd93..fe483daae 100644 --- a/src/include/game/chr/chraicommands.h +++ b/src/include/game/chr/chraicommands.h @@ -432,7 +432,7 @@ /*0x01d2*/ bool aiChrEmitSparks(void); /*0x01d3*/ bool ai01d3(void); /*0x01d4*/ bool ai01d4(void); -/*0x01d5*/ bool ai01d5(void); +/*0x01d5*/ bool aiShowCutsceneChrs(void); /*0x01d6*/ bool ai01d6(void); /*0x01d7*/ bool ai01d7(void); /*0x01d8*/ bool ai01d8(void); diff --git a/src/include/setup/setup_000000.h b/src/include/setup/setup_000000.h index 3720897cd..8b4acefaa 100644 --- a/src/include/setup/setup_000000.h +++ b/src/include/setup/setup_000000.h @@ -6,6 +6,7 @@ extern s32 levelnum; extern u64 rand_seed; +extern struct chrdata *g_Chrs; // pointer to first element of chrs array extern u32 g_NumChrs; extern u32 var8005ce60; extern u32 var8005ce64; diff --git a/src/include/types.h b/src/include/types.h index 987293861..1f5280419 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -260,7 +260,6 @@ struct chrdata { /*0x361*/ u8 lastfootsample; /*0x362*/ u8 onlift; /*0x364*/ u32 unk364; - /*0x368*/ u32 m_SoundEndTime; }; struct defaultobj { diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 19f8e064e..d7aae9331 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -8134,8 +8134,8 @@ u32 var80062978 = 0x00000000; u32 var8006297c = 0x00000000; u32 var80062980 = 0x00000000; u32 var80062984 = 0x00001388; -u32 var80062988 = 0x00000000; -u32 g_NumChrs = 0; +struct chrdata *g_Chrs = NULL; // 80062988 +u32 g_NumChrs = 0; // 8006298c u32 var80062990 = 0x00000000; u32 var80062994 = 0x00000000; u32 var80062998 = 0x00000000; @@ -14422,7 +14422,7 @@ bool (*g_CommandPointers[])(void) = { /*0x01d2*/ aiChrEmitSparks, /*0x01d3*/ ai01d3, /*0x01d4*/ ai01d4, - /*0x01d5*/ ai01d5, + /*0x01d5*/ aiShowCutsceneChrs, /*0x01d6*/ ai01d6, /*0x01d7*/ ai01d7, /*0x01d8*/ ai01d8,