Decompile chrTickArgh

This commit is contained in:
Ryan Dwyer 2020-02-21 17:49:51 +10:00
parent 66b2b9ae1b
commit 6092ce8747
5 changed files with 96 additions and 123 deletions

View File

@ -1552,16 +1552,16 @@ u8 func0c01_midcutscene[] = {
wait_until(570, 0x69)
label(0x6c)
set_drcaroll_images(CHR_DRCAROLL, 0x02, 0x03)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_X)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x03, 0x02)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_X, DRCAROLLIMAGE_EYESFROWNING)
yield
if_controller_button_pressed(/*goto*/ 0x57)
if_timer_gt(600, /*goto*/ 0x06)
goto_first(0x6c)
label(0x06)
set_drcaroll_images(CHR_DRCAROLL, 0x02, 0x02)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_EYESFROWNING)
speak(CHR_BOND, 0x3025, 0x746f, CHANNEL_10, COLOR_09_BLUE) // "Me and my big mouth."
wait_until(700, 0x6d)
@ -1575,7 +1575,7 @@ u8 func0c01_midcutscene[] = {
label(0x71)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x07, 0x07)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_RANDOM25, DRCAROLLIMAGE_RANDOM25)
if_controller_button_pressed(/*goto*/ 0x57)
if_timer_gt(742, /*goto*/ 0x06)
goto_first(0x71)
@ -1583,112 +1583,112 @@ u8 func0c01_midcutscene[] = {
label(0x06)
speak(CHR_BOND, 0x3026, 0x7470, CHANNEL_10, COLOR_04_ORANGE) // "Commencing countermeasures. Commenc..... *** ooOOo..."
wait_until_with_images(746, 0x73, 0x02, 0x08)
wait_until_with_images(746, 0x73, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_RANDOM)
play_sound(0x0128, CHANNEL_5)
wait_until_with_images(760, 0x75, 0x08, 0x08)
wait_until_with_images(760, 0x75, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(764, 0x76, 0x08, 0x02)
wait_until_with_images(764, 0x76, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESFROWNING)
play_sound(0x0173, CHANNEL_2)
wait_until_with_images(784, 0x79, 0x08, 0x08)
wait_until_with_images(784, 0x79, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
play_sound(0x0174, CHANNEL_5)
wait_until_with_images(808, 0x7c, 0x08, 0x02)
wait_until_with_images(808, 0x7c, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESFROWNING)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(872, 0x81, 0x08, 0x08)
wait_until_with_images(872, 0x81, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
play_sound(0x04fa, CHANNEL_7)
wait_until_with_images(886, 0x83, 0x00, 0x08)
wait_until_with_images(886, 0x83, 0x00, DRCAROLLIMAGE_RANDOM)
play_sound(0x0129, CHANNEL_3)
wait_until_with_images(894, 0x85, 0x08, 0x02)
wait_until_with_images(894, 0x85, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESFROWNING)
play_sound(0x012a, CHANNEL_5)
label(0x86)
wait_until_with_images(914, 0x87, 0x08, 0x08)
wait_until_with_images(914, 0x87, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(980, 0x8b, 0x00, 0x08)
wait_until_with_images(980, 0x8b, 0x00, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(992, 0x8e, 0x08, 0x00)
wait_until_with_images(992, 0x8e, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x04f9, CHANNEL_2)
wait_until_with_images(1012, 0x90, 0x08, 0x08)
wait_until_with_images(1012, 0x90, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
play_sound(0x012b, CHANNEL_4)
wait_until_with_images(1018, 0x91, 0x00, 0x08)
wait_until_with_images(1018, 0x91, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1026, 0x93, 0x08, 0x08)
wait_until_with_images(1026, 0x93, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
play_sound(0x0129, CHANNEL_7)
wait_until_with_images(1034, 0x94, 0x08, 0x00)
wait_until_with_images(1034, 0x94, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x0176, CHANNEL_2)
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
wait_until_with_images(1036, 0x95, 0x08, 0x08)
wait_until_with_images(1036, 0x95, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1068, 0x98, 0x08, 0x00)
wait_until_with_images(1068, 0x98, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x0177, CHANNEL_6)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1074, 0x99, 0x08, 0x08)
wait_until_with_images(1074, 0x99, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1090, 0xfc, 0x00, 0x08)
wait_until_with_images(1090, 0xfc, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1112, 0x9e, 0x08, 0x08)
wait_until_with_images(1112, 0x9e, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
play_sound(0x0127, CHANNEL_6)
wait_until_with_images(1124, 0xa0, 0x08, 0x00)
wait_until_with_images(1124, 0xa0, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x04f7, CHANNEL_2)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1130, 0xa1, 0x00, 0x08)
wait_until_with_images(1130, 0xa1, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
play_sound(0x04ff, CHANNEL_3)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1188, 0xa7, 0x08, 0x08)
wait_until_with_images(1188, 0xa7, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1238, 0xaa, 0x08, 0x00)
wait_until_with_images(1238, 0xaa, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x04f7, CHANNEL_6)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1304, 0xb2, 0x00, 0x08)
wait_until_with_images(1304, 0xb2, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
play_sound(0x0129, CHANNEL_2)
wait_until_with_images(1308, 0xb3, 0x08, 0x08)
wait_until_with_images(1308, 0xb3, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_RANDOM)
play_sound(0x0178, CHANNEL_3)
wait_until_with_images(1354, 0xba, 0x08, 0x00)
wait_until_with_images(1354, 0xba, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x04f7, CHANNEL_4)
wait_until_with_images(1406, 0xc5, 0x00, 0x08)
wait_until_with_images(1406, 0xc5, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1468, 0xcd, 0x00, 0x08)
wait_until_with_images(1468, 0xcd, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
play_sound(0x012b, CHANNEL_5)
wait_until_with_images(1480, 0xcf, 0x00, 0x08)
wait_until_with_images(1480, 0xcf, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
play_sound(0x0173, CHANNEL_6)
wait_until_with_images(1487, 0xd0, 0x08, 0x00)
wait_until_with_images(1487, 0xd0, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x04f9, CHANNEL_2)
emit_sparks(CHR_DRCAROLL)
wait_until_with_images(1494, 0xd1, 0x08, 0x00)
wait_until_with_images(1494, 0xd1, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
play_sound(0x0171, CHANNEL_3)
wait_until_with_images(1500, 0xd4, 0x08, 0x00)
wait_until_with_images(1500, 0xd4, DRCAROLLIMAGE_RANDOM, DRCAROLLIMAGE_EYESDEFAULT)
speak(CHR_BOND, 0x3027, 0x7471, CHANNEL_10, COLOR_09_BLUE) // "Dr. Caroll? Are you in control again? Can you stop..."
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
wait_until(1534, 0xd6)
play_sound(0x04f9, CHANNEL_6)
@ -1721,46 +1721,46 @@ u8 func0c01_midcutscene[] = {
wait_until(3156, 0xf6)
emit_sparks(CHR_DRCAROLL)
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
wait_until(3266, 0xf7)
emit_sparks(CHR_DRCAROLL)
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
wait_until(3556, 0xf8)
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
emit_sparks(CHR_DRCAROLL)
wait_until(3606, 0xf9)
emit_sparks(CHR_DRCAROLL)
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
wait_until(3985, 0x10)
play_sound(0x0424, CHANNEL_1)
@ -1768,13 +1768,13 @@ u8 func0c01_midcutscene[] = {
wait_until(4046, 0xfa)
emit_sparks(CHR_DRCAROLL)
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x08)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_RANDOM)
yield
set_drcaroll_images(CHR_DRCAROLL, 0x00, 0x00)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESDEFAULT, DRCAROLLIMAGE_EYESDEFAULT)
wait_until(4106, 0xfb)
emit_sparks(CHR_DRCAROLL)
@ -2018,7 +2018,7 @@ u8 func0c02_outro[] = {
};
u8 func1002_intro[] = {
set_drcaroll_images(CHR_DRCAROLL, 0x02, 0x02)
set_drcaroll_images(CHR_DRCAROLL, DRCAROLLIMAGE_EYESFROWNING, DRCAROLLIMAGE_EYESFROWNING)
chr_draw_weapon_in_cutscene(CHR_BOND, WEAPON_FALCON2_SCOPE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)

View File

@ -3701,8 +3701,8 @@ void func0f03119c(struct chrdata *chr)
chr->sleep = 0;
if (chr->race == RACE_DRCAROLL) {
chr->drcarollimage_left = DRCAROLLIMAGE_DEAD;
chr->drcarollimage_right = DRCAROLLIMAGE_DEAD;
chr->drcarollimage_left = DRCAROLLIMAGE_STATIC;
chr->drcarollimage_right = DRCAROLLIMAGE_STATIC;
}
}
}
@ -17713,65 +17713,27 @@ glabel chrTickDruggedKo
/* f03ddf4: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel chrTickArgh
/* f03ddf8: 27bdffd8 */ addiu $sp,$sp,-40
/* f03ddfc: afb00018 */ sw $s0,0x18($sp)
/* f03de00: 00808025 */ or $s0,$a0,$zero
/* f03de04: afbf001c */ sw $ra,0x1c($sp)
/* f03de08: 8c840020 */ lw $a0,0x20($a0)
/* f03de0c: 0c00745f */ jal func0001d17c
/* f03de10: afa40024 */ sw $a0,0x24($sp)
/* f03de14: e7a00020 */ swc1 $f0,0x20($sp)
/* f03de18: 0c007468 */ jal func0001d1a0
/* f03de1c: 8fa40024 */ lw $a0,0x24($sp)
/* f03de20: c7a40020 */ lwc1 $f4,0x20($sp)
/* f03de24: 4604003e */ c.le.s $f0,$f4
/* f03de28: 00000000 */ sll $zero,$zero,0x0
/* f03de2c: 4502001e */ bc1fl .L0f03dea8
/* f03de30: 02002025 */ or $a0,$s0,$zero
/* f03de34: 0fc0e56b */ jal chrRecordLastSeeTargetTime
/* f03de38: 02002025 */ or $a0,$s0,$zero
/* f03de3c: 12000003 */ beqz $s0,.L0f03de4c
/* f03de40: 00001025 */ or $v0,$zero,$zero
/* f03de44: 10000001 */ beqz $zero,.L0f03de4c
/* f03de48: 920202fe */ lbu $v0,0x2fe($s0)
.L0f03de4c:
/* f03de4c: 5440000b */ bnezl $v0,.L0f03de7c
/* f03de50: 920e02fe */ lbu $t6,0x2fe($s0)
/* f03de54: 0c00744f */ jal func0001d13c
/* f03de58: 8fa40024 */ lw $a0,0x24($sp)
/* f03de5c: 24010039 */ addiu $at,$zero,0x39
/* f03de60: 14410005 */ bne $v0,$at,.L0f03de78
/* f03de64: 02002025 */ or $a0,$s0,$zero
/* f03de68: 0fc0bb4a */ jal func0f02ed28
/* f03de6c: 3c0541d0 */ lui $a1,0x41d0
/* f03de70: 1000000d */ beqz $zero,.L0f03dea8
/* f03de74: 02002025 */ or $a0,$s0,$zero
.L0f03de78:
/* f03de78: 920e02fe */ lbu $t6,0x2fe($s0)
.L0f03de7c:
/* f03de7c: 24010002 */ addiu $at,$zero,0x2
/* f03de80: 15c10006 */ bne $t6,$at,.L0f03de9c
/* f03de84: 00000000 */ sll $zero,$zero,0x0
/* f03de88: 920f0362 */ lbu $t7,0x362($s0)
/* f03de8c: 31f9ff0f */ andi $t9,$t7,0xff0f
/* f03de90: a2190362 */ sb $t9,0x362($s0)
/* f03de94: 332800f0 */ andi $t0,$t9,0xf0
/* f03de98: a2080362 */ sb $t0,0x362($s0)
.L0f03de9c:
/* f03de9c: 0fc0bb57 */ jal chrStop
/* f03dea0: 02002025 */ or $a0,$s0,$zero
/* f03dea4: 02002025 */ or $a0,$s0,$zero
.L0f03dea8:
/* f03dea8: 0fc0f3a3 */ jal func0f03ce8c
/* f03deac: 00002825 */ or $a1,$zero,$zero
/* f03deb0: 8fbf001c */ lw $ra,0x1c($sp)
/* f03deb4: 8fb00018 */ lw $s0,0x18($sp)
/* f03deb8: 27bd0028 */ addiu $sp,$sp,0x28
/* f03debc: 03e00008 */ jr $ra
/* f03dec0: 00000000 */ sll $zero,$zero,0x0
);
void chrTickArgh(struct chrdata *chr)
{
struct chr020 *chr020 = chr->unk020;
if (func0001d17c(chr020) >= func0001d1a0(chr020)) {
chrRecordLastSeeTargetTime(chr);
if (CHRRACE(chr) == RACE_HUMAN && func0001d13c(chr020) == ANIM_DEATH_STOMACH_LONG) {
func0f02ed28(chr, 26);
} else {
if (chr->race == RACE_DRCAROLL) {
chr->drcarollimage_left = DRCAROLLIMAGE_EYESDEFAULT;
chr->drcarollimage_right = DRCAROLLIMAGE_EYESDEFAULT;
}
chrStop(chr);
}
}
func0f03ce8c(chr, 0);
}
void chrTickPreArgh(struct chrdata *chr)
{

View File

@ -3821,6 +3821,8 @@
* 0-6 = set directly to that image ID
* 7 = 25% chance of changing the image to a random one in range 0-5
* 8 = 100% chance of changing the image to a random one in range 0-5
*
* See also DRCAROLLIMAGE constants.
*/
#define set_drcaroll_images(chr, left, right) \
mkshort(0x01d3), \

View File

@ -90,6 +90,7 @@
#define ANIM_TWO_GUN_HOLD 0x0001
#define ANIM_KNEEL_TWO_HANDED_GUN 0x0008
#define ANIM_SURRENDER_002E 0x002e
#define ANIM_DEATH_STOMACH_LONG 0x0039
#define ANIM_TALKING_003D 0x003d
#define ANIM_KNEEL_SHOOT_RIGHT_HAND 0x004b
#define ANIM_TALKING_0098 0x0098
@ -446,7 +447,15 @@
#define DOORTYPE_HULL 10
#define DOORTYPE_LASER 11
#define DRCAROLLIMAGE_DEAD 4
#define DRCAROLLIMAGE_EYESDEFAULT 0
#define DRCAROLLIMAGE_HEARTRATE 1
#define DRCAROLLIMAGE_EYESFROWNING 2
#define DRCAROLLIMAGE_X 3
#define DRCAROLLIMAGE_STATIC 4
#define DRCAROLLIMAGE_BINARY 5
#define DRCAROLLIMAGE_EYESSLEEPY 6
#define DRCAROLLIMAGE_RANDOM25 7
#define DRCAROLLIMAGE_RANDOM 8
#define ENTITYTYPE_CHR 0x0004
#define ENTITYTYPE_PAD 0x0008

View File

@ -112,7 +112,7 @@ void chrTickStand(struct chrdata *chr);
void chrTickAnim(struct chrdata *chr);
void chrTickSurrender(struct chrdata *chr);
void chrTickDead(struct chrdata *chr);
u32 func0f03ce8c(void);
void func0f03ce8c(struct chrdata *chr, s32 arg1);
void chrTickDie(struct chrdata *chr);
void chrTickDruggedComingUp(struct chrdata *chr);
void chrTickDruggedDrop(struct chrdata *chr);