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