diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index 3d9e6b5da..de4879a82 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -2481,9 +2481,9 @@ u8 func100d_check_objects_destroyed[] = { u8 func1002_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_CASS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_SECRETARY, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PROGRAMMER, CHRCFLAG_04000000) + set_chr_chrflag(CHR_CASS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_SECRETARY, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PROGRAMMER, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setupark.c b/src/files/setup/setupark.c index 5a536065b..61059bd57 100644 --- a/src/files/setup/setupark.c +++ b/src/files/setup/setupark.c @@ -2677,8 +2677,8 @@ u8 func040d_cass_outro[] = { u8 func1001_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_TECH1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_TECH2, CHRCFLAG_04000000) + set_chr_chrflag(CHR_TECH1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_TECH2, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index 2856ba8c2..605608f02 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -380,9 +380,9 @@ struct path paths[] = { u8 func1001_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_PRES_CLONE, CHRCFLAG_04000000) - set_chr_chrflag(CHR_ELVIS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_04000000) + set_chr_chrflag(CHR_PRES_CLONE, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_ELVIS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 499861934..8359a3513 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -727,31 +727,31 @@ struct path paths[] = { u8 func1002_objectives_failed_msg[] = { yield give_object_to_chr(OBJ_UNIFORM, CHR_STEWARDESS) - set_chr_chrflag(0x00, CHRCFLAG_04000000) - set_chr_chrflag(0x01, CHRCFLAG_04000000) - set_chr_chrflag(0x02, CHRCFLAG_04000000) - set_chr_chrflag(0x03, CHRCFLAG_04000000) - set_chr_chrflag(0x04, CHRCFLAG_04000000) - set_chr_chrflag(0x05, CHRCFLAG_04000000) - set_chr_chrflag(0x06, CHRCFLAG_04000000) - set_chr_chrflag(0x07, CHRCFLAG_04000000) - set_chr_chrflag(0x08, CHRCFLAG_04000000) - set_chr_chrflag(0x09, CHRCFLAG_04000000) - set_chr_chrflag(0x0a, CHRCFLAG_04000000) - set_chr_chrflag(0x0b, CHRCFLAG_04000000) - set_chr_chrflag(0x0c, CHRCFLAG_04000000) - set_chr_chrflag(0x0d, CHRCFLAG_04000000) - set_chr_chrflag(0x0e, CHRCFLAG_04000000) - set_chr_chrflag(0x0f, CHRCFLAG_04000000) - set_chr_chrflag(CHR_STEWARDESS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_SECRETARY, CHRCFLAG_04000000) - set_chr_chrflag(0x3a, CHRCFLAG_04000000) - set_chr_chrflag(0x3b, CHRCFLAG_04000000) - set_chr_chrflag(CHR_OFFICE1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_OFFICE2, CHRCFLAG_04000000) - set_chr_chrflag(0x44, CHRCFLAG_04000000) - set_chr_chrflag(0x45, CHRCFLAG_04000000) - set_chr_chrflag(0x46, CHRCFLAG_04000000) + set_chr_chrflag(0x00, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x01, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x02, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x03, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x04, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x05, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x06, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x07, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x08, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x09, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0a, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0b, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0c, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0d, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0e, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0f, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_STEWARDESS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_SECRETARY, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x3a, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x3b, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_OFFICE1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_OFFICE2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x44, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x45, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x46, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setupdam.c b/src/files/setup/setupdam.c index ab7b3e38f..3747a59bb 100644 --- a/src/files/setup/setupdam.c +++ b/src/files/setup/setupdam.c @@ -650,14 +650,14 @@ struct path paths[] = { u8 func1001_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_ELVIS, CHRCFLAG_04000000) + set_chr_chrflag(CHR_ELVIS, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_ELVIS, CHRCFLAG_01000000) - set_chr_chrflag(CHR_LABTECH1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH2, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH3, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PILOT1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PILOT2, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PILOT3, CHRCFLAG_04000000) + set_chr_chrflag(CHR_LABTECH1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH3, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PILOT1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PILOT2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PILOT3, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; @@ -1343,7 +1343,7 @@ u8 func0407_start_path02[] = { u8 func040e_init_labtech1[] = { - set_self_chrflag(CHRCFLAG_04000000) + set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_LABTECH1) endlist @@ -1418,7 +1418,7 @@ u8 func040b_labtech1[] = { }; u8 func040f_init_labtech2[] = { - set_self_chrflag(CHRCFLAG_04000000) + set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_LABTECH2) endlist @@ -1493,7 +1493,7 @@ u8 func040c_labtech2[] = { }; u8 func0410_init_labtech3[] = { - set_self_chrflag(CHRCFLAG_04000000) + set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_chr_maxdamage(CHR_SELF, 1) set_ailist(CHR_SELF, AILIST_LABTECH3) endlist diff --git a/src/files/setup/setupear.c b/src/files/setup/setupear.c index 494befe4b..6de5545e1 100644 --- a/src/files/setup/setupear.c +++ b/src/files/setup/setupear.c @@ -1948,10 +1948,10 @@ u8 func1008_check_bot_terminals_destroyed[] = { u8 func1001_objectives_failed_msg[] = { yield // These are scientist chrs - set_chr_chrflag(0x35, CHRCFLAG_04000000) - set_chr_chrflag(0x36, CHRCFLAG_04000000) - set_chr_chrflag(0x37, CHRCFLAG_04000000) - set_chr_chrflag(0x38, CHRCFLAG_04000000) + set_chr_chrflag(0x35, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x36, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x37, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x38, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index d8bd04112..56f8a3058 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -558,17 +558,17 @@ u8 func1001_objectives_failed_msg[] = { give_object_to_chr(OBJ_DATAUPLINK_COOP, CHR_COOP) label(0x2e) - set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_DEVICE_F, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_INFO_M, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_HOLO, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HANGARGUY, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_DEVICE_M, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_04000000) - set_chr_chrflag(CHR_HOSTAGE_INFO_F, CHRCFLAG_04000000) - set_chr_chrflag(0x09, CHRCFLAG_04000000) - set_chr_chrflag(0x0a, CHRCFLAG_04000000) + set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_DEVICE_F, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_INFO_M, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_HOLO, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HANGARGUY, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_DEVICE_M, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_HOSTAGE_INFO_F, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x09, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0a, CHRCFLAG_KEEPCORPSEKO) set_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_UNEXPLODABLE) set_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_UNEXPLODABLE) set_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_UNEXPLODABLE) diff --git a/src/files/setup/setuplip.c b/src/files/setup/setuplip.c index ea587c9ff..45fc072aa 100644 --- a/src/files/setup/setuplip.c +++ b/src/files/setup/setuplip.c @@ -1244,16 +1244,16 @@ u8 func040f_start_path14[] = { u8 func1001_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_LABTECH_RECORDS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH_LIGHTS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH_DOORS1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH_SHOWERS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH_HARRYSMATE, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH_KEYCARDGUY, CHRCFLAG_04000000) - set_chr_chrflag(CHR_BIOTECH1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_BIOTECH2, CHRCFLAG_04000000) - set_chr_chrflag(CHR_LABTECH_DOORS2, CHRCFLAG_04000000) - set_chr_chrflag(CHR_MECHANIC, CHRCFLAG_04000000) + set_chr_chrflag(CHR_LABTECH_RECORDS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH_LIGHTS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH_DOORS1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH_SHOWERS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH_HARRYSMATE, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH_KEYCARDGUY, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_BIOTECH1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_BIOTECH2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_LABTECH_DOORS2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_MECHANIC, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setuplue.c b/src/files/setup/setuplue.c index 52ffdd1b1..5992ca8b8 100644 --- a/src/files/setup/setuplue.c +++ b/src/files/setup/setuplue.c @@ -1686,7 +1686,7 @@ u8 func1001_objectives_failed_msg[] = { set_object_flag2(OBJ_MINE4, OBJFLAG2_INVISIBLE) set_object_flag2(OBJ_MINE5, OBJFLAG2_INVISIBLE) set_object_flag2(OBJ_MINE6, OBJFLAG2_INVISIBLE) - set_chr_chrflag(CHR_MECHANIC, CHRCFLAG_04000000) + set_chr_chrflag(CHR_MECHANIC, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index 21debea11..33901e74c 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -2485,10 +2485,10 @@ u8 func1010_elevator_switch[] = { u8 func1001_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_CIA1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_CIA2, CHRCFLAG_04000000) - set_chr_chrflag(CHR_CIA3, CHRCFLAG_04000000) - set_chr_chrflag(CHR_CIA4, CHRCFLAG_04000000) + set_chr_chrflag(CHR_CIA1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_CIA2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_CIA3, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_CIA4, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setuprit.c b/src/files/setup/setuprit.c index 2a15ac044..8d5af14fe 100644 --- a/src/files/setup/setuprit.c +++ b/src/files/setup/setuprit.c @@ -522,34 +522,34 @@ s32 path02[] = { u8 func1001_objectives_failed_msg[] = { yield - set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_04000000) - set_chr_chrflag(CHR_STEWARDESS, CHRCFLAG_04000000) - set_chr_chrflag(CHR_STEWARD, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PILOT1, CHRCFLAG_04000000) - set_chr_chrflag(CHR_PILOT2, CHRCFLAG_04000000) - set_chr_chrflag(0x01, CHRCFLAG_04000000) - set_chr_chrflag(0x02, CHRCFLAG_04000000) - set_chr_chrflag(0x03, CHRCFLAG_04000000) - set_chr_chrflag(0x04, CHRCFLAG_04000000) - set_chr_chrflag(0x05, CHRCFLAG_04000000) - set_chr_chrflag(0x06, CHRCFLAG_04000000) - set_chr_chrflag(0x07, CHRCFLAG_04000000) - set_chr_chrflag(0x08, CHRCFLAG_04000000) - set_chr_chrflag(0x09, CHRCFLAG_04000000) - set_chr_chrflag(0x0a, CHRCFLAG_04000000) - set_chr_chrflag(0x0b, CHRCFLAG_04000000) - set_chr_chrflag(0x0c, CHRCFLAG_04000000) - set_chr_chrflag(0x0d, CHRCFLAG_04000000) - set_chr_chrflag(0x0e, CHRCFLAG_04000000) - set_chr_chrflag(0x0f, CHRCFLAG_04000000) - set_chr_chrflag(0x10, CHRCFLAG_04000000) - set_chr_chrflag(0x11, CHRCFLAG_04000000) - set_chr_chrflag(0x12, CHRCFLAG_04000000) - set_chr_chrflag(0x13, CHRCFLAG_04000000) - set_chr_chrflag(0x14, CHRCFLAG_04000000) - set_chr_chrflag(0x15, CHRCFLAG_04000000) - set_chr_chrflag(0x16, CHRCFLAG_04000000) - set_chr_chrflag(0x17, CHRCFLAG_04000000) + set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_STEWARDESS, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_STEWARD, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PILOT1, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(CHR_PILOT2, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x01, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x02, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x03, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x04, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x05, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x06, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x07, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x08, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x09, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0a, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0b, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0c, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0d, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0e, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x0f, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x10, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x11, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x12, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x13, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x14, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x15, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x16, CHRCFLAG_KEEPCORPSEKO) + set_chr_chrflag(0x17, CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_SHOW_OBJ_FAILED_MSG) endlist }; diff --git a/src/files/setup/setupsev.c b/src/files/setup/setupsev.c index 0586be878..6e6c5b005 100644 --- a/src/files/setup/setupsev.c +++ b/src/files/setup/setupsev.c @@ -1654,7 +1654,7 @@ u8 func100c_unset_trolley_flag_when_destroyed[] = { }; u8 func041c_init_labtech[] = { - set_self_chrflag(CHRCFLAG_04000000) + set_self_chrflag(CHRCFLAG_KEEPCORPSEKO) set_ailist(CHR_SELF, GAILIST_UNALERTED) endlist }; diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 99b895961..9bcc231a5 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -2278,7 +2278,7 @@ glabel func0f030ff8 /* f031198: 00000000 */ sll $zero,$zero,0x0 ); -void func0f03119c(struct chrdata *chr) +void chrBeginDead(struct chrdata *chr) { if (chr->actiontype != ACT_DEAD) { chrStopFiring(chr); @@ -2289,10 +2289,10 @@ void func0f03119c(struct chrdata *chr) } chr->actiontype = ACT_DEAD; - chr->act_dead.unk038 = chr->aibot ? 0 : -1; - chr->act_dead.unk02c = 0; - chr->act_dead.unk030 = 0; - chr->act_dead.unk034 = 0; + chr->act_dead.fadetimer = chr->aibot ? 0 : -1; + chr->act_dead.allowfade = false; + chr->act_dead.allowreap = false; + chr->act_dead.reaptimer = 0; chr->act_dead.unk03c = 0; chr->sleep = 0; @@ -3222,8 +3222,8 @@ glabel var7f1a8d44 /* f031f90: 3c0d8006 */ lui $t5,%hi(var800652b8+0x8) /* f031f94: 25ad52c0 */ addiu $t5,$t5,%lo(var800652b8+0x8) /* f031f98: 172d02c5 */ bne $t9,$t5,.L0f032ab0 -/* f031f9c: 3c018007 */ lui $at,%hi(var8006807c) -/* f031fa0: ac20807c */ sw $zero,%lo(var8006807c)($at) +/* f031f9c: 3c018007 */ lui $at,%hi(g_DrCarollDyingTimer) +/* f031fa0: ac20807c */ sw $zero,%lo(g_DrCarollDyingTimer)($at) /* f031fa4: 3c014180 */ lui $at,0x4180 /* f031fa8: 44815000 */ mtc1 $at,$f10 /* f031fac: ae000120 */ sw $zero,0x120($s0) @@ -5058,10 +5058,10 @@ glabel func0f0338e0 /* f0339b0: 2401000f */ addiu $at,$zero,0xf /* f0339b4: 8f010000 */ lw $at,0x0($t8) /* f0339b8: 27a300f8 */ addiu $v1,$sp,0xf8 -/* f0339bc: 3c048007 */ lui $a0,%hi(var8006807c) +/* f0339bc: 3c048007 */ lui $a0,%hi(g_DrCarollDyingTimer) /* f0339c0: ac610000 */ sw $at,0x0($v1) /* f0339c4: 8f080004 */ lw $t0,0x4($t8) -/* f0339c8: 2484807c */ addiu $a0,$a0,%lo(var8006807c) +/* f0339c8: 2484807c */ addiu $a0,$a0,%lo(g_DrCarollDyingTimer) /* f0339cc: 8c890000 */ lw $t1,0x0($a0) /* f0339d0: ac680004 */ sw $t0,0x4($v1) /* f0339d4: 8f010008 */ lw $at,0x8($t8) @@ -7894,14 +7894,14 @@ void func0f036358(struct chrdata *chr, s32 arg1) { if (chr->actiontype != ACT_DIE) { chrStopFiring(chr); - chrUncloak(chr, 1); + chrUncloak(chr, true); chr->actiontype = ACT_DIE; chr->act_die.unk02c = 0; chr->sleep = 0; chr->blurnumtimesdied++; - chr->act_die.unk030 = -1; - chr->act_die.unk034 = -1; + chr->act_die.thudframe1 = -1; + chr->act_die.thudframe2 = -1; chr->act_die.unk038 = 0; chr->ailist = ailistFindById(GAILIST_AI_BOT_DEAD); @@ -11072,8 +11072,8 @@ bool chrTrySurrender(struct chrdata *chr) bool chrFadeOut(struct chrdata *chr) { - func0f03119c(chr); - func0f03ccdc(chr); + chrBeginDead(chr); + chrFadeCorpse(chr); return true; } @@ -13119,17 +13119,17 @@ void chrTickSurrender(struct chrdata *chr) } } -void func0f03ccdc(struct chrdata *chr) +void chrFadeCorpse(struct chrdata *chr) { if (chr->actiontype == ACT_DEAD || chr->actiontype == ACT_DRUGGEDKO) { - chr->act_dead.unk02c = 1; + chr->act_dead.allowfade = true; } } -void func0f03cd04(struct chrdata *chr) +void chrEnableReap(struct chrdata *chr) { if (chr->actiontype == ACT_DEAD) { - chr->act_dead.unk030 = 1; + chr->act_dead.allowreap = true; } } @@ -13137,35 +13137,42 @@ void chrTickDead(struct chrdata *chr) { struct aibot *aibot = chr->aibot; - if (chr->act_dead.unk038 >= 0) { - chr->act_dead.unk038 += g_Vars.lvupdate240_60; + // If fade is active, handle it + if (chr->act_dead.fadetimer >= 0) { + chr->act_dead.fadetimer += g_Vars.lvupdate240_60; - if (chr->act_dead.unk038 >= 90) { + if (chr->act_dead.fadetimer >= 90) { + // Fade finished chr->fadealpha = 0; if (aibot) { mpInitSimulant(chr, true); } else { - chr->hidden |= CHRHFLAG_00000020; + chr->hidden |= CHRHFLAG_REAPED; } } else { - chr->fadealpha = (90 - chr->act_dead.unk038) * 255 / 90; + // Still fading + chr->fadealpha = (90 - chr->act_dead.fadetimer) * 255 / 90; } } else { - if (chr->act_dead.unk02c) { - chr->act_dead.unk038 = 0; + // If fade has been triggered (this can happen when the corpse is on + // screen and there's lots of other chrs around) + if (chr->act_dead.allowfade) { + chr->act_dead.fadetimer = 0; chrDropWeapons(chr); } if (chr->prop->flags & PROPFLAG_80) { - chr->act_dead.unk034 = 0; + // Keep corpse for now + chr->act_dead.reaptimer = 0; } else { - chr->act_dead.unk034 += g_Vars.lvupdate240_60; + chr->act_dead.reaptimer += g_Vars.lvupdate240_60; } - if (chr->act_dead.unk030 && chr->act_dead.unk034 >= 120) { - if (aibot == 0) { - chr->hidden |= CHRHFLAG_00000020; + if (chr->act_dead.allowreap && chr->act_dead.reaptimer >= 120) { + // Remove corpse (off-screen) + if (aibot == NULL) { + chr->hidden |= CHRHFLAG_REAPED; } chr->fadealpha = 0; @@ -13345,10 +13352,10 @@ void chrTickDie(struct chrdata *chr) struct model *model = chr->model; u32 race = CHRRACE(chr); - // Thud noises - probably bodies hitting the floor + // Thud noises u16 thuds[] = { 0x808d, 0x808e, 0x808f, 0x8090, 0x8091, 0x8092, 0x8093, 0x8094, 0x8095, 0x8096, 0x8097 }; - u16 uStack56[] = { + u16 specialdiesounds[] = { 0x8129, // "Noooo!" 0x812f, // Death scream 0x813a, // "Noooo!" @@ -13362,7 +13369,7 @@ void chrTickDie(struct chrdata *chr) 0x8097, // Thud }; - static s32 animindex = 0; + static s32 thudindex = 0; if (race == RACE_EYESPY) { return; @@ -13372,37 +13379,39 @@ void chrTickDie(struct chrdata *chr) struct prop *prop = chr->prop; func0f0926bc(prop, 1, 0xffff); explosionCreateSimple(prop, &prop->pos, prop->rooms, EXPLOSIONTYPE_8, g_Vars.currentplayernum); - chr->hidden |= CHRHFLAG_00000020; + chr->hidden |= CHRHFLAG_REAPED; return; } if (race == RACE_DRCAROLL) { struct prop *prop = chr->prop; - if (var8006807c > 120 && chr->voicebox) { - // Dr Caroll death phrases - u16 psStack76[] = { 0x024d, 0x024e, 0x024f, 0x0256, 0x0257, 0x0258 }; - func0f0939f8(NULL, chr->prop, psStack76[random() % 5], -1, + if (g_DrCarollDyingTimer > 120 && chr->voicebox) { + // Play speech + u16 phrases[] = { 0x024d, 0x024e, 0x024f, 0x0256, 0x0257, 0x0258 }; + func0f0939f8(NULL, chr->prop, phrases[random() % 5], -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); chr->voicebox = 0; } - if (chr->act_die.unk04c > 0) { - chr->act_die.unk04c -= g_Vars.lvupdate240_60; + // Change images randomly + if (chr->act_die.drcarollimagedelay > 0) { + chr->act_die.drcarollimagedelay -= g_Vars.lvupdate240_60; } else { - chr->act_die.unk04c = (random() % 1000) * 0.01f + 5.0f; + chr->act_die.drcarollimagedelay = (random() % 1000) * 0.01f + 5.0f; chr->drcarollimage_left = 1 + (s32)((random() % 400) * 0.01f); chr->drcarollimage_right = 1 + (s32)((random() % 400) * 0.01f); } - if (var8006807c > 310) { + if (g_DrCarollDyingTimer > 310) { + // Explode func0f0926bc(prop, 1, 0xffff); explosionCreateSimple(prop, &prop->pos, prop->rooms, EXPLOSIONTYPE_8, g_Vars.currentplayernum); - func0f03119c(chr); + chrBeginDead(chr); } else if (chr->soundtimer > (s32)var80068080) { + // Play shield damage sound chr->soundtimer = 0; var80068080 -= 5; - // Shield damage sound func0f0939f8(NULL, prop, 0x64, -1, -1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1); func0f12f9f0(prop->rooms[0], prop, &prop->pos, 0, 0, 1); @@ -13412,42 +13421,45 @@ void chrTickDie(struct chrdata *chr) } // Human or Skedar - if (chr->act_die.unk030 >= 0 && modelGetCurAnimFrame(model) >= chr->act_die.unk030) { + // If due, play thud 1 sound + if (chr->act_die.thudframe1 >= 0 && modelGetCurAnimFrame(model) >= chr->act_die.thudframe1) { if (chr->specialdie == 0) { - func0f0939f8(NULL, chr->prop, thuds[animindex], -1, + func0f0939f8(NULL, chr->prop, thuds[thudindex], -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); } else if (chr->specialdie != SPECIALDIE_OVERRAILING) { - func0f0939f8(NULL, chr->prop, uStack56[chr->specialdie - 1], -1, + func0f0939f8(NULL, chr->prop, specialdiesounds[chr->specialdie - 1], -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); } - animindex++; + thudindex++; - if (animindex > 10) { - animindex = 0; + if (thudindex > 10) { + thudindex = 0; } - chr->act_die.unk030 = -1; + chr->act_die.thudframe1 = -1; } - if (chr->act_die.unk034 >= 0 && modelGetCurAnimFrame(model) >= chr->act_die.unk034) { + // If due, play thud 2 sound + if (chr->act_die.thudframe2 >= 0 && modelGetCurAnimFrame(model) >= chr->act_die.thudframe2) { if (chr->specialdie < 5) { func0f0939f8(NULL, chr->prop, 0x808e, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); } else { - func0f0939f8(NULL, chr->prop, thuds[animindex], -1, + func0f0939f8(NULL, chr->prop, thuds[thudindex], -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); } - animindex++; + thudindex++; - if (animindex > 10) { - animindex = 0; + if (thudindex > 10) { + thudindex = 0; } - chr->act_die.unk034 = -1; + chr->act_die.thudframe2 = -1; } + // Check for end of death animation and switch to ACT_DEAD if (modelGetCurAnimFrame(model) >= func0001d1a0(model)) { if (CHRRACE(chr) == RACE_HUMAN && modelGetAnimNum(model) == ANIM_DEATH_STOMACH_LONG) { modelSetAnimation(model, ANIM_003C, !modelIsFlipped(model), 50, 0.3, modelGetNumAnimFrames(ANIM_003C) - 51.0f); @@ -13455,10 +13467,10 @@ void chrTickDie(struct chrdata *chr) return; } - func0f03119c(chr); + chrBeginDead(chr); } - func0f03ce8c(chr, 1); + func0f03ce8c(chr, true); } u32 var80068408 = 0x808d808e; @@ -13666,80 +13678,84 @@ void chrTickDruggedDrop(struct chrdata *chr) 0x8097, }; - static s32 index = 0; + static s32 thudindex = 0; - if (chr->act_druggeddrop.unk030 >= 0 && modelGetCurAnimFrame(model) >= chr->act_druggeddrop.unk030) { - func0f0939f8(NULL, chr->prop, thuds[index], -1, + // If due, play thud 1 sound + if (chr->act_druggeddrop.thudframe1 >= 0 && modelGetCurAnimFrame(model) >= chr->act_druggeddrop.thudframe1) { + func0f0939f8(NULL, chr->prop, thuds[thudindex], -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); - index++; + thudindex++; - if (index > 10) { - index = 0; + if (thudindex > 10) { + thudindex = 0; } - chr->act_druggeddrop.unk030 = -1; + chr->act_druggeddrop.thudframe1 = -1; } - if (chr->act_druggeddrop.unk034 >= 0 && modelGetCurAnimFrame(model) >= chr->act_druggeddrop.unk034) { - func0f0939f8(NULL, chr->prop, thuds[index], -1, + // If due, play thud 2 sound + if (chr->act_druggeddrop.thudframe2 >= 0 && modelGetCurAnimFrame(model) >= chr->act_druggeddrop.thudframe2) { + func0f0939f8(NULL, chr->prop, thuds[thudindex], -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1); - index++; + thudindex++; - if (index > 10) { - index = 0; + if (thudindex > 10) { + thudindex = 0; } - chr->act_druggeddrop.unk034 = -1; + chr->act_druggeddrop.thudframe2 = -1; } + // If falling animation finished, assign ACT_DRUGGEDKO if (modelGetCurAnimFrame(model) >= func0001d1a0(model)) { chr->actiontype = ACT_DRUGGEDKO; - chr->act_druggedko.unk038 = chr->aibot ? 0 : -1; - chr->act_druggedko.unk02c = 0; - chr->act_druggedko.unk030 = 0; - chr->act_druggedko.unk034 = 0; + chr->act_druggedko.fadetimer = chr->aibot ? 0 : -1; + chr->act_druggedko.allowfade = false; + chr->act_druggedko.allowreap = false; + chr->act_druggedko.reaptimer = 0; chr->act_druggedko.unk03c = 0; chr->sleep = 0; } - func0f03ce8c(chr, 1); + func0f03ce8c(chr, true); } u32 var8006843c = 0x0000ffff; void chrTickDruggedKo(struct chrdata *chr) { - bool pass = false; + bool reap = false; - if (chr->act_druggedko.unk038 >= 0) { - chr->act_druggedko.unk038 += g_Vars.lvupdate240_60; + // If fade is active, handle it + if (chr->act_druggedko.fadetimer >= 0) { + chr->act_druggedko.fadetimer += g_Vars.lvupdate240_60; - if (chr->act_druggedko.unk038 >= 90) { - pass = true; + if (chr->act_druggedko.fadetimer >= 90) { + reap = true; } else { - chr->fadealpha = (90 - chr->act_druggedko.unk038) * 255 / 90; + chr->fadealpha = (90 - chr->act_druggedko.fadetimer) * 255 / 90; } - } else if ((chr->chrflags & CHRCFLAG_04000000) == 0) { - if (chr->act_druggedko.unk02c) { - chr->act_druggedko.unk038 = 0; + } else if ((chr->chrflags & CHRCFLAG_KEEPCORPSEKO) == 0) { + if (chr->act_druggedko.allowfade) { + chr->act_druggedko.fadetimer = 0; } if (chr->prop->flags & PROPFLAG_80) { - chr->act_druggedko.unk034 = 0; + chr->act_druggedko.reaptimer = 0; } else { - chr->act_druggedko.unk034 += g_Vars.lvupdate240_60; + chr->act_druggedko.reaptimer += g_Vars.lvupdate240_60; } - if (chr->act_druggedko.unk030 && chr->act_druggedko.unk034 >= 120) { - pass = true; + if (chr->act_druggedko.allowreap && chr->act_druggedko.reaptimer >= 120) { + reap = true; } } - if (pass) { + if (reap) { chr->fadealpha = 0; - chr->hidden |= CHRHFLAG_00000020; + chr->hidden |= CHRHFLAG_REAPED; chrDropWeapons(chr); } } @@ -13763,7 +13779,7 @@ void chrTickArgh(struct chrdata *chr) } } - func0f03ce8c(chr, 0); + func0f03ce8c(chr, false); } void chrTickPreArgh(struct chrdata *chr) @@ -23886,7 +23902,7 @@ void chrTick(struct chrdata *chr) } if (race == RACE_DRCAROLL) { - var8006807c += g_Vars.lvupdate240_60; + g_DrCarollDyingTimer += g_Vars.lvupdate240_60; } chr->soundtimer += g_Vars.lvupdate240_60; @@ -24309,7 +24325,7 @@ glabel func0f048398 /* f048754: 0007000d */ break 0x7 .L0f048758: /* f048758: 8d840000 */ lw $a0,0x0($t4) -/* f04875c: 0fc0f337 */ jal func0f03ccdc +/* f04875c: 0fc0f337 */ jal chrFadeCorpse /* f048760: 00000000 */ sll $zero,$zero,0x0 /* f048764: 8fa30048 */ lw $v1,0x48($sp) /* f048768: 00107080 */ sll $t6,$s0,0x2 @@ -24399,7 +24415,7 @@ glabel func0f048398 /* f048898: 51a00006 */ beqzl $t5,.L0f0488b4 /* f04889c: 8c8f0030 */ lw $t7,0x30($a0) .L0f0488a0: -/* f0488a0: 0fc0f337 */ jal func0f03ccdc +/* f0488a0: 0fc0f337 */ jal chrFadeCorpse /* f0488a4: 00000000 */ sll $zero,$zero,0x0 /* f0488a8: 10000049 */ beqz $zero,.L0f0489d0 /* f0488ac: 26d6ffff */ addiu $s6,$s6,-1 @@ -24427,7 +24443,7 @@ glabel func0f048398 /* f048900: 0007000d */ break 0x7 .L0f048904: /* f048904: 8c8400b8 */ lw $a0,0xb8($a0) -/* f048908: 0fc0f341 */ jal func0f03cd04 +/* f048908: 0fc0f341 */ jal chrEnableReap /* f04890c: 00000000 */ sll $zero,$zero,0x0 /* f048910: 8fa30048 */ lw $v1,0x48($sp) /* f048914: 00105080 */ sll $t2,$s0,0x2 @@ -24465,7 +24481,7 @@ glabel func0f048398 /* f04898c: 12f90005 */ beq $s7,$t9,.L0f0489a4 /* f048990: 02884821 */ addu $t1,$s4,$t0 /* f048994: 8d240000 */ lw $a0,0x0($t1) -/* f048998: 0fc0c467 */ jal func0f03119c +/* f048998: 0fc0c467 */ jal chrBeginDead /* f04899c: afa50048 */ sw $a1,0x48($sp) /* f0489a0: 8fa50048 */ lw $a1,0x48($sp) .L0f0489a4: @@ -24473,7 +24489,7 @@ glabel func0f048398 /* f0489a8: 028a1021 */ addu $v0,$s4,$t2 /* f0489ac: 8c440000 */ lw $a0,0x0($v0) /* f0489b0: afa50048 */ sw $a1,0x48($sp) -/* f0489b4: 0fc0f341 */ jal func0f03cd04 +/* f0489b4: 0fc0f341 */ jal chrEnableReap /* f0489b8: afa20044 */ sw $v0,0x44($sp) /* f0489bc: 8fa50048 */ lw $a1,0x48($sp) /* f0489c0: 8fa20044 */ lw $v0,0x44($sp) diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index e32e87e55..2634191df 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -11396,13 +11396,13 @@ bool aiChrKill(void) if (chr) { chr->actiontype = ACT_DEAD; - chr->act_dead.unk038 = -1; - chr->act_dead.unk02c = 0; - chr->act_dead.unk030 = 0; - chr->act_dead.unk034 = 0; + chr->act_dead.fadetimer = -1; + chr->act_dead.allowfade = false; + chr->act_dead.allowreap = false; + chr->act_dead.reaptimer = 0; chr->act_dead.unk03c = 0; chr->sleep = 0; - chr->chrflags |= CHRCFLAG_04000000 | CHRCFLAG_00010000; + chr->chrflags |= CHRCFLAG_KEEPCORPSEKO | CHRCFLAG_00010000; } g_Vars.aioffset += 3; diff --git a/src/game/data/data_0083d0.c b/src/game/data/data_0083d0.c index db1dbfaa7..acbd97a9a 100644 --- a/src/game/data/data_0083d0.c +++ b/src/game/data/data_0083d0.c @@ -1881,7 +1881,7 @@ u32 var8006806c = 0x00000000; u32 var80068070 = 0x00000000; u32 var80068074 = 0x00000000; u32 var80068078 = 0x00000000; -s32 var8006807c = 0x0000000a; +s32 g_DrCarollDyingTimer = 10; u8 var80068080 = 50; u32 var80068084 = 0x005b0000; u32 var80068088 = 0x00000000; diff --git a/src/game/game_129210.c b/src/game/game_129210.c index 41f5c9b31..627856d02 100644 --- a/src/game/game_129210.c +++ b/src/game/game_129210.c @@ -397,7 +397,7 @@ glabel func0f12955c .L0f12975c: /* f12975c: 028d7021 */ addu $t6,$s4,$t5 /* f129760: 00608825 */ or $s1,$v1,$zero -/* f129764: 0fc0f341 */ jal func0f03cd04 +/* f129764: 0fc0f341 */ jal chrEnableReap /* f129768: 8dc40000 */ lw $a0,0x0($t6) /* f12976c: 00117880 */ sll $t7,$s1,0x2 /* f129770: 028fc021 */ addu $t8,$s4,$t7 @@ -428,7 +428,7 @@ glabel func0f12955c /* f1297c0: 11200006 */ beqz $t1,.L0f1297dc /* f1297c4: 00035080 */ sll $t2,$v1,0x2 /* f1297c8: 028a8021 */ addu $s0,$s4,$t2 -/* f1297cc: 0fc0f341 */ jal func0f03cd04 +/* f1297cc: 0fc0f341 */ jal chrEnableReap /* f1297d0: 8e040000 */ lw $a0,0x0($s0) /* f1297d4: ae000000 */ sw $zero,0x0($s0) /* f1297d8: 2631ffff */ addiu $s1,$s1,-1 diff --git a/src/include/constants.h b/src/include/constants.h index c38fd8b4c..644401223 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -360,13 +360,13 @@ #define CHRHFLAG_00000004 0x00000004 // Related to firing - hand 1 #define CHRHFLAG_00000008 0x00000008 // Related to firing - hand 0 #define CHRHFLAG_00000010 0x00000010 // Not used in scripts -#define CHRHFLAG_00000020 0x00000020 // Not used in scripts +#define CHRHFLAG_REAPED 0x00000020 #define CHRHFLAG_TIMER_RUNNING 0x00000040 #define CHRHFLAG_00000080 0x00000080 // Not used in scripts #define CHRHFLAG_00000100 0x00000100 // Not used in scripts #define CHRHFLAG_00000200 0x00000200 // Not used in scripts #define CHRHFLAG_PASSIVE 0x00000400 -#define CHRHFLAG_KEEP_CORPSE 0x00000800 +#define CHRHFLAG_KEEP_CORPSE 0x00000800 // Appears to be misnamed #define CHRHFLAG_BUDDY_PLACED 0x00001000 #define CHRHFLAG_00002000 0x00002000 // Globals, Rescue guards once disguised #define CHRHFLAG_TRIGGER_BUDDY_WARP 0x00004000 @@ -420,7 +420,7 @@ #define CHRCFLAG_UNPLAYABLE 0x00800000 #define CHRCFLAG_01000000 0x01000000 // Typically set on allies during init #define CHRCFLAG_02000000 0x02000000 // can be unset by cmd0168 -#define CHRCFLAG_04000000 0x04000000 // Set by aiChrKill command +#define CHRCFLAG_KEEPCORPSEKO 0x04000000 #define CHRCFLAG_CONSIDER_DODGE 0x08000000 #define CHRCFLAG_10000000 0x10000000 // Not used in scripts #define CHRCFLAG_20000000 0x20000000 // Not used in scripts diff --git a/src/include/game/chr/chraction.h b/src/include/game/chr/chraction.h index f38ebe623..adbe19089 100644 --- a/src/include/game/chr/chraction.h +++ b/src/include/game/chr/chraction.h @@ -112,7 +112,7 @@ void chrTickStand(struct chrdata *chr); void chrTickAnim(struct chrdata *chr); void chrTickSurrender(struct chrdata *chr); void chrTickDead(struct chrdata *chr); -void func0f03ce8c(struct chrdata *chr, s32 arg1); +void func0f03ce8c(struct chrdata *chr, bool arg1); void chrTickDie(struct chrdata *chr); void chrTickDruggedComingUp(struct chrdata *chr); void chrTickDruggedDrop(struct chrdata *chr); @@ -218,7 +218,7 @@ void chrSurrender(struct chrdata *chr); void chrSidestep(struct chrdata *chr, bool side); void chrJumpOut(struct chrdata *chr, bool side); void chrRunToPos(struct chrdata *chr, struct coord *pos); -void func0f03119c(struct chrdata *chr); +void chrBeginDead(struct chrdata *chr); f32 chrGetShield(struct chrdata *chr); void func0f036358(struct chrdata *chr, s32 arg1); void chrGoPosGetCurWaypointInfo(struct chrdata *chr, struct coord *pos, s16 *rooms); @@ -251,8 +251,8 @@ bool func0f03af44(struct chrdata *chr, u32 anim_id, f32 fstartframe, f32 fendfra bool chrTryStartAlarm(struct chrdata *chr, s32 pad_id); s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid); void chrTickKneel(struct chrdata *chr); -void func0f03ccdc(struct chrdata *chr); -void func0f03cd04(struct chrdata *chr); +void chrFadeCorpse(struct chrdata *chr); +void chrEnableReap(struct chrdata *chr); void chrTickTest(struct chrdata *chr); void func0f03e538(struct chrdata *chr, f32 arg1); f32 func0f03e578(struct chrdata *chr); diff --git a/src/include/game/data/data_0083d0.h b/src/include/game/data/data_0083d0.h index dcfbce42d..484f32288 100644 --- a/src/include/game/data/data_0083d0.h +++ b/src/include/game/data/data_0083d0.h @@ -186,7 +186,7 @@ extern u32 var8006805c; extern u32 var80068064; extern u32 var8006806c; extern u32 var80068074; -extern s32 var8006807c; +extern s32 g_DrCarollDyingTimer; extern u8 var80068080; extern u32 var80068084; extern u32 var800680bc; diff --git a/src/include/types.h b/src/include/types.h index 49c9f17f1..52931f50d 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -439,21 +439,21 @@ struct act_anim { struct act_die { /*0x2c*/ u32 unk02c; - /*0x30*/ f32 unk030; // frame number - /*0x34*/ f32 unk034; // frame number + /*0x30*/ f32 thudframe1; + /*0x34*/ f32 thudframe2; /*0x38*/ f32 unk038; /*0x3c*/ u32 unk03c; /*0x40*/ u32 unk040; /*0x44*/ u32 unk044; /*0x48*/ u32 unk048; - /*0x4c*/ s16 unk04c; + /*0x4c*/ s16 drcarollimagedelay; }; struct act_dead { - /*0x2c*/ u32 unk02c; - /*0x30*/ u32 unk030; - /*0x34*/ s32 unk034; // timer - /*0x38*/ s32 unk038; // timer + /*0x2c*/ bool allowfade; + /*0x30*/ bool allowreap; + /*0x34*/ s32 reaptimer; + /*0x38*/ s32 fadetimer; /*0x3c*/ u32 unk03c; }; @@ -594,15 +594,15 @@ struct act_throwgrenade { struct act_druggeddrop { /*0x2c*/ u32 unk02c; - /*0x30*/ f32 unk030; - /*0x34*/ f32 unk034; + /*0x30*/ f32 thudframe1; + /*0x34*/ f32 thudframe2; }; struct act_druggedko { - /*0x2c*/ u32 unk02c; - /*0x30*/ u32 unk030; - /*0x34*/ s32 unk034; - /*0x38*/ s32 unk038; + /*0x2c*/ bool allowfade; + /*0x30*/ bool allowreap; + /*0x34*/ s32 reaptimer; + /*0x38*/ s32 fadetimer; /*0x3c*/ u32 unk03c; };