Skip to content

Commit 15ab862

Browse files
authored
MAP0_S00: match func_800DC8D8 (#397)
* MAP0_S00: match func_800DC8D8 * clean
1 parent d581837 commit 15ab862

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

include/maps/map0/map0_s00.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ extern s_800E32DC D_800E32DC;
1414
/** "STAGE 0-0" string */
1515
extern char D_800CAE7C[];
1616

17+
extern VECTOR3 D_800CB6A4;
18+
1719
extern s32 D_800E3A30;
1820

1921
extern u8 D_800DD592;
@@ -87,4 +89,6 @@ void func_800DC33C(void);
8789

8890
void func_800DC694(void);
8991

92+
void func_800DC8D8(void);
93+
9094
#endif

src/maps/map0_s00/map0_s00.c

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,39 @@ void func_800DC694(void) {
624624
goto block7;
625625
}
626626

627-
INCLUDE_ASM("asm/maps/map0_s00/nonmatchings/map0_s00", func_800DC8D8);
627+
void func_800DC8D8(void)
628+
{
629+
s32 temp_a0;
630+
s32 temp_v0;
631+
s32 temp_v0_2;
632+
633+
temp_v0 = (g_SysWork.npcs_1A0[0].position_18.vx - g_SysWork.player_4C.chara_0.position_18.vx) >> 6;
634+
temp_v0_2 = ((g_SysWork.npcs_1A0[0].position_18.vz - g_SysWork.player_4C.chara_0.position_18.vz) - Q12(2.0f)) >> 6;
635+
temp_a0 = SquareRoot0(SQUARE(temp_v0) + SQUARE(temp_v0_2)) << 6;
636+
if (!(g_SavegamePtr->eventFlags_168[0] & 0x400))
637+
{
638+
g_SysWork.npcs_1A0[0].position_18.vx = Q12(-61.0f);
639+
g_SysWork.npcs_1A0[0].position_18.vz = Q12(48.0f);
640+
g_SysWork.npcs_1A0[0].rotation_24.vy = Q12(0.25f);
641+
if (temp_a0 < Q12(14.8f))
642+
{
643+
sharedFunc_800D88AC_0_s00(g_SysWork.npcs_1A0);
644+
g_SavegamePtr->eventFlags_168[0] |= 0x400;
645+
func_800865FC(1, 1, 0, 0x400, Q12(-57.0f), Q12(47.0f));
646+
}
647+
}
648+
else
649+
{
650+
g_SysWork.npcs_1A0[0].properties_E4.player.headingAngle_124 = Q12(1.8f);
651+
func_8008677C((s32) g_SysWork.npcs_1A0, 2, 1);
652+
if (g_SysWork.npcs_1A0[0].position_18.vx > Q12(-58.0f))
653+
{
654+
g_SavegamePtr->eventFlags_168[0] |= 0x800;
655+
g_SysWork.npcs_1A0[0].model_0.charaId_0 = 0;
656+
func_8005DC1C(0x54A, &D_800CB6A4, 0x80, 0);
657+
}
658+
}
659+
}
628660

629661
INCLUDE_ASM("asm/maps/map0_s00/nonmatchings/map0_s00", func_800DCA30);
630662

0 commit comments

Comments
 (0)