Skip to content

Commit cd7952c

Browse files
committed
map7: match AnimUpdate funcs
1 parent d9cb3c2 commit cd7952c

7 files changed

Lines changed: 43 additions & 10 deletions

File tree

configs/maps/sym.map7_s02.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ Ai_Kaufmann_Init = 0x800D8AA8; // type:func
158158
//--- PA: 0x00F578 VA: 0x800D8AF0 subsegment: c, Chara_GhostDoctor
159159
//--------------------------------------------------------------------
160160
Ai_GhostDoctor_Update = 0x800D8AF0; // type:func
161+
Ai_GhostDoctor_AnimUpdate = 0x800D8B64; // type:func
161162
Character_CoordTransformUpdate = 0x800D8BAC; // type:func
162163
Ai_GhostDoctor_Init = 0x800D8BE0; // type:func
163164

configs/maps/sym.map7_s03.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,12 +122,14 @@ Ai_Alessa_Init = 0x800D3660; // type:func
122122
//--- PA: 0x00A10C VA: 0x800D3684 subsegment: c, Chara_BloodyIncubator
123123
//------------------------------------------------------------------------
124124
Ai_BloodyIncubator_Update = 0x800D3684; // type:func
125+
Ai_BloodyIncubator_AnimUpdate = 0x800D36F8; // type:func
125126
Ai_BloodyIncubator_Init = 0x800D3BA4; // type:func
126127

127128
//------------------------------------------------------------------
128129
//--- PA: 0x00A64C VA: 0x800D3BC4 subsegment: c, Chara_Incubator
129130
//------------------------------------------------------------------
130131
Ai_Incubator_Update = 0x800D3BC4; // type:func
132+
Ai_Incubator_AnimUpdate = 0x800D3C38; // type:func
131133
Ai_Incubator_Init = 0x800D3F38; // type:func
132134

133135
//-----------------------------------------------------------------

include/maps/map7/map7_s02.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ extern q3_12 D_800EBB94;
9191

9292
void Ai_GhostDoctor_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
9393

94-
void func_800D8B64(s_SubCharacter*, s_AnmHeader*, GsCOORDINATE2*);
94+
void Ai_GhostDoctor_AnimUpdate(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
9595

9696
/** @brief Updates the transform of the `coord` matrix to the character's position, converting
9797
* from world space to geometry space.

include/maps/map7/map7_s03.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ extern s_AnimInfo INCUBUS_ANIM_INFOS[];
6767
extern s_AnimInfo UNKKOWN_23_ANIM_INFOS[];
6868

6969
void Ai_BloodyIncubator_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
70-
void func_800D36F8(s_SubCharacter*, s_AnmHeader*, GsCOORDINATE2*);
70+
void Ai_BloodyIncubator_AnimUpdate(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
7171
void func_800D3740(s_SubCharacter*, GsCOORDINATE2*);
7272
void func_800D38D8(s_SubCharacter*, GsCOORDINATE2*);
7373
void Ai_BloodyIncubator_Init(s_SubCharacter* chara);
7474

7575
void Ai_Incubator_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
76-
void func_800D3C38(s_SubCharacter*, s_AnmHeader*, GsCOORDINATE2*);
76+
void Ai_Incubator_AnimUpdate(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
7777
void func_800D3C80(s_SubCharacter* chara, GsCOORDINATE2* coord);
7878
void func_800D3E18(s_SubCharacter*, GsCOORDINATE2*);
7979
void Ai_Incubator_Init(s_SubCharacter* chara);

src/maps/map7_s02/Chara_GhostDoctor.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,20 @@ void Ai_GhostDoctor_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDIN
1616

1717
func_800D8C00(chara, coords);
1818
Character_CoordTransformUpdate(chara, coords);
19-
func_800D8B64(chara, anmHdr, coords);
19+
Ai_GhostDoctor_AnimUpdate(chara, anmHdr, coords);
2020
}
2121

22-
INCLUDE_ASM("asm/maps/map7_s02/nonmatchings/Chara_GhostDoctor", func_800D8B64);
22+
void Ai_GhostDoctor_AnimUpdate(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords) // 0x800D8B64
23+
{
24+
s_AnimInfo* animInfo;
25+
26+
// TODO: Wrong properties union.
27+
if (chara->properties_E4.player.field_F0 == 0)
28+
{
29+
animInfo = &GHOST_DOCTOR_ANIM_INFOS[chara->model_0.anim_4.status_0];
30+
animInfo->updateFunc_0(&chara->model_0, anmHdr, coords, animInfo);
31+
}
32+
}
2333

2434
void Character_CoordTransformUpdate(s_SubCharacter* chara, GsCOORDINATE2* coord) // 0x800D8BAC
2535
{

src/maps/map7_s03/Chara_BloodyIncubator.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,20 @@ void Ai_BloodyIncubator_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOO
1616

1717
func_800D38D8(chara, coords);
1818
func_800D3740(chara, coords);
19-
func_800D36F8(chara, anmHdr, coords);
19+
Ai_BloodyIncubator_AnimUpdate(chara, anmHdr, coords);
2020
}
2121

22-
INCLUDE_ASM("asm/maps/map7_s03/nonmatchings/Chara_BloodyIncubator", func_800D36F8);
22+
void Ai_BloodyIncubator_AnimUpdate(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords) // 0x800D36F8
23+
{
24+
s_AnimInfo* animInfo;
25+
26+
// TODO: Wrong properties union.
27+
if (chara->properties_E4.player.field_F0 == 0)
28+
{
29+
animInfo = &BLOODY_INCUBATOR_ANIM_INFOS[chara->model_0.anim_4.status_0];
30+
animInfo->updateFunc_0(&chara->model_0, anmHdr, coords, animInfo);
31+
}
32+
}
2333

2434
INCLUDE_ASM("asm/maps/map7_s03/nonmatchings/Chara_BloodyIncubator", func_800D3740);
2535

@@ -28,4 +38,4 @@ INCLUDE_ASM("asm/maps/map7_s03/nonmatchings/Chara_BloodyIncubator", func_800D38D
2838
void Ai_BloodyIncubator_Init(s_SubCharacter* chara) // 0x800D3BA4
2939
{
3040
sharedFunc_800D923C_0_s00(chara);
31-
}
41+
}

src/maps/map7_s03/Chara_Incubator.c

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,20 @@ void Ai_Incubator_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINAT
1616

1717
func_800D3E18(chara, coords);
1818
func_800D3C80(chara, coords);
19-
func_800D3C38(chara, anmHdr, coords);
19+
Ai_Incubator_AnimUpdate(chara, anmHdr, coords);
2020
}
2121

22-
INCLUDE_ASM("asm/maps/map7_s03/nonmatchings/Chara_Incubator", func_800D3C38);
22+
void Ai_Incubator_AnimUpdate(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords) // 0x800D3C38
23+
{
24+
s_AnimInfo* animInfo;
25+
26+
// TODO: Wrong properties union.
27+
if (chara->properties_E4.player.field_F0 == 0)
28+
{
29+
animInfo = &INCUBATOR_ANIM_INFOS[chara->model_0.anim_4.status_0];
30+
animInfo->updateFunc_0(&chara->model_0, anmHdr, coords, animInfo);
31+
}
32+
}
2333

2434
void func_800D3C80(s_SubCharacter* chara, GsCOORDINATE2* coord)
2535
{

0 commit comments

Comments
 (0)