diff --git a/docs/progress.svg b/docs/progress.svg index 75f03c445..c66423760 100644 --- a/docs/progress.svg +++ b/docs/progress.svg @@ -551,7 +551,7 @@ SkateKidControl DrawSkateKid CowboyControl -InitialiseBaldy +InitialiseBaldy BaldyControl PickUpCollision PickUpScionCollision @@ -1353,7 +1353,7 @@ LaraAsUseKey S_InitialiseScreen InitialiseSkateKid -InitialiseBaldy +InitialiseBaldy T_FlashText FxExplosion Inv_RingMotionRadius @@ -1463,10 +1463,10 @@ sub_440EF0 sub_437BC0 S_CDVolume -Functions decompiled (count): 59.51% -Functions decompiled (bytesize): 55.78% -Functions not decompiled, but with known names (count): 26.40% -Functions not decompiled, but with known names (bytesize): 28.39% +Functions decompiled (count): 59.64% +Functions decompiled (bytesize): 55.80% +Functions not decompiled, but with known names (count): 26.27% +Functions not decompiled, but with known names (bytesize): 28.37% Functions not decompiled, with unknown names (count): 14.09% Functions not decompiled, with unknown names (bytesize): 15.83% diff --git a/docs/progress.txt b/docs/progress.txt index 32231938d..6ca1ece24 100644 --- a/docs/progress.txt +++ b/docs/progress.txt @@ -775,7 +775,7 @@ InitialiseSkateKid 0x004320B0 0x00000027 + SkateKidControl 0x004320E0 0x00000458 + DrawSkateKid 0x00432550 0x0000004C + CowboyControl 0x004325A0 0x000005A7 + -InitialiseBaldy 0x00432B60 0x00000027 * +InitialiseBaldy 0x00432B60 0x00000027 + BaldyControl 0x00432B90 0x000004CC * # pickup.cpp diff --git a/src/game/people.c b/src/game/people.c index 2a3a49a41..10d16111e 100644 --- a/src/game/people.c +++ b/src/game/people.c @@ -104,6 +104,16 @@ typedef enum { COWBOY_SHOOT = 6, } COWBOY_ANIM; +typedef enum { + BALDY_EMPTY = 0, + BALDY_STOP = 1, + BALDY_WALK = 2, + BALDY_RUN = 3, + BALDY_AIM = 4, + BALDY_DEATH = 5, + BALDY_SHOOT = 6, +} BALDY_ANIM; + static BITE_INFO LarsonGun = { -60, 170, 0, 14 }; static BITE_INFO PierreGun1 = { 60, 200, 0, 11 }; static BITE_INFO PierreGun2 = { -57, 200, 0, 14 }; @@ -949,6 +959,12 @@ void CowboyControl(int16_t item_num) CreatureAnimation(item_num, angle, 0); } +void InitialiseBaldy(int16_t item_num) +{ + InitialiseCreature(item_num); + Items[item_num].current_anim_state = BALDY_RUN; +} + void T1MInjectGamePeople() { INJECT(0x00430D80, Targetable); @@ -964,4 +980,5 @@ void T1MInjectGamePeople() INJECT(0x004320E0, SkateKidControl); INJECT(0x00432550, DrawSkateKid); INJECT(0x004325A0, CowboyControl); + INJECT(0x00432B60, InitialiseBaldy); } diff --git a/src/game/people.h b/src/game/people.h index b9ffbbb33..bc4d19eff 100644 --- a/src/game/people.h +++ b/src/game/people.h @@ -5,7 +5,6 @@ #include // clang-format off -#define InitialiseBaldy ((void (*)(int16_t item_num))0x00432B60) #define BaldyControl ((void (*)(int16_t item_num))0x00432B90) // clang-format on @@ -35,6 +34,8 @@ void DrawSkateKid(ITEM_INFO* item); void CowboyControl(int16_t item_num); +void InitialiseBaldy(int16_t item_num); + void T1MInjectGamePeople(); #endif