Decompile chrDamage

This commit is contained in:
Ryan Dwyer 2021-04-24 11:23:05 +10:00
parent 7fe4b24139
commit b75e5d9242
67 changed files with 1567 additions and 7067 deletions

View File

@ -156,6 +156,7 @@ CFLAGS = -DVERSION=$(VERSION) \
$(LOOPUNROLL) \
-Wab,-r4300_mul \
-non_shared \
-Olimit 1000 \
-G 0 \
-Xcpluscomm \
-woff 581,649,819,820,821,838,852 \

View File

@ -1570,12 +1570,12 @@ u8 func1008_trigger_hovercopter_roof[] = {
};
u8 func1009_init_top_room[] = {
set_chr_chrflag(CHR_TOPGUARD1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TOPGUARD2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TOPGUARD3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TOPGUARD4, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TOPGUARD5, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TOPGUARD1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TOPGUARD2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TOPGUARD3, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TOPGUARD4, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TOPGUARD5, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE)
beginloop(0x1f)
chr_toggle_p1p2(CHR_SELF)
@ -1591,11 +1591,11 @@ u8 func1009_init_top_room[] = {
set_chr_target_chr(CHR_TOPGUARD3, CHR_P1P2)
set_chr_target_chr(CHR_TOPGUARD4, CHR_P1P2)
set_chr_target_chr(CHR_TOPGUARD5, CHR_P1P2)
unset_chr_chrflag(CHR_TOPGUARD1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TOPGUARD2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TOPGUARD3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TOPGUARD4, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TOPGUARD5, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TOPGUARD1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TOPGUARD2, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TOPGUARD3, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TOPGUARD4, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TOPGUARD5, CHRCFLAG_INVINCIBLE)
set_chr_team(CHR_CASS, TEAM_ENEMY)
set_chr_team(CHR_TOPGUARD1, TEAM_ENEMY)
set_chr_team(CHR_TOPGUARD2, TEAM_ENEMY)
@ -1636,9 +1636,9 @@ u8 func0409_tech_conversation[] = {
if_door_state(0x11, DOORSTATE_OPEN, /*goto*/ 0x00)
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
dprint 'T','E','C','H',' ','1',' ','L','O','O','P','\n',0,
set_chr_chrflag(CHR_TECH1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TECH2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_RLSHOCK, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TECH1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TECH2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_RLSHOCK, CHRCFLAG_INVINCIBLE)
endloop(0x01)
// Player activated door or door is fully open
@ -1649,9 +1649,9 @@ u8 func0409_tech_conversation[] = {
set_chr_team(CHR_RLSHOCK, TEAM_ENEMY)
rebuild_teams
rebuild_squadrons
unset_chr_chrflag(CHR_TECH1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TECH2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_RLSHOCK, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TECH1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TECH2, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_RLSHOCK, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_RLSHOCK, GAILIST_UNALERTED)
restart_timer
chr_do_animation(0x0204, -1, -1, 0x02, 0x14, 0x10, 2)
@ -1925,7 +1925,7 @@ u8 func040a_tech2[] = {
u8 func040d_cass[] = {
set_shield(100)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CASS, CHRCFLAG_UNEXPLODABLE)
set_target_chr(CHR_P1P2)
@ -2389,7 +2389,7 @@ u8 func100d_intro[] = {
chr_do_animation(0x013d, -2, -1, 0x06, 0x00, CHR_DRCAROLL, 2)
unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE)
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_INVINCIBLE)
set_chr_hiddenflag(CHR_INTRO_GUARD, CHRHFLAG_00020000)
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_00010000)
chr_do_animation(0x013a, -2, -1, 0x06, 0x00, CHR_INTRO_GUARD, 2)
@ -2416,13 +2416,13 @@ u8 func0412_outro[] = {
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN)
dprint 'c','u','t',' ','s','c','e','n','e',' ','2',0,
set_chr_chrflag(CHR_P1P2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_P1P2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE)
chr_toggle_modelpart(CHR_CASS, MODELPART_NECKLACE)
set_chr_chrflag(CHR_MRBLONDE, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_OUTRO_GUARD1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_OUTRO_GUARD2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_MRBLONDE, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_OUTRO_GUARD1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_OUTRO_GUARD2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_DRCAROLL, GAILIST_IDLE)
set_chr_chrflag(CHR_DRCAROLL, CHRCFLAG_UNPLAYABLE)

View File

@ -160,7 +160,7 @@ u8 func1007_second_walk[] = {
label(0x2d)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_UNEXPLODABLE)
yield
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
@ -241,7 +241,7 @@ u8 func1008_third_walk[] = {
label(0x2d)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_UNEXPLODABLE)
yield
unset_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
@ -544,7 +544,7 @@ u8 func0406_jon_init[] = {
set_recovery_speed(0)
set_shield(0)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -559,7 +559,7 @@ u8 func0407_trent_init[] = {
set_recovery_speed(0)
set_shield(0)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist

View File

@ -561,7 +561,7 @@ u8 func0402_outro[] = {
set_ailist(CHR_ELVIS, GAILIST_IDLE)
set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_PRESIDENT, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_PRESIDENT, GAILIST_IDLE)
set_chr_chrflag(CHR_TARGET, CHRCFLAG_UNPLAYABLE)
@ -574,25 +574,25 @@ u8 func0402_outro[] = {
set_chr_hiddenflag(CHR_SKEDAR, CHRHFLAG_00020000)
chr_do_animation(0x01da, -1, -1, 0x06, 0x00, CHR_SKEDAR, 4)
set_chr_chrflag(CHR_ELVIS_OUTRO, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ELVIS_OUTRO, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_ELVIS_OUTRO, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_ELVIS_OUTRO, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_ELVIS_OUTRO, CHRHFLAG_00020000)
chr_do_animation(0x01db, -1, -1, 0x06, 0x00, CHR_ELVIS_OUTRO, 4)
set_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TRENT, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_TRENT, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_TRENT, CHRHFLAG_00020000)
chr_do_animation(0x01dc, -1, -1, 0x06, 0x00, CHR_TRENT, 4)
set_chr_chrflag(CHR_MRBLONDE, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_MRBLONDE, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_MRBLONDE, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_MRBLONDE, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_MRBLONDE, CHRHFLAG_00020000)
chr_do_animation(0x01dd, -1, -1, 0x06, 0x00, CHR_MRBLONDE, 4)
set_chr_chrflag(CHR_PRESIDENT_OUTRO, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_PRESIDENT_OUTRO, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_PRESIDENT_OUTRO, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_PRESIDENT_OUTRO, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_PRESIDENT_OUTRO, CHRHFLAG_00020000)
@ -1127,7 +1127,7 @@ u8 func100b_check_clone_dead[] = {
u8 func0403_init_elvis[] = {
set_shield(100)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_10000000)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_accuracy(100)
set_reaction_speed(100)
add_health_or_armor(1000)
@ -1267,7 +1267,7 @@ u8 func0418_robot[] = {
goto_next(0x04)
label(0x08)
yield
damage_chr(CHR_SELF, 18)
damage_chr(CHR_SELF, WEAPON_SUPERDRAGON)
goto_first(0x66)
beginloop(0x04)
@ -1406,7 +1406,7 @@ u8 func0419_unused[] = {
};
u8 func0422_hide[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -1785,7 +1785,7 @@ u8 func041f_trent_shooting[] = {
u8 func0420_trent_running[] = {
set_self_chrflag(CHRCFLAG_RUNFASTER)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_stage_flag(STAGEFLAG_TRENT_RUNNING)
restart_timer
run_to_pad(0x0027)

View File

@ -1037,7 +1037,7 @@ u8 func1004_guard_activation[] = {
#define enable_takeover_guard2(chr, function) \
show_chr(chr) \
set_ailist(chr, function) \
unset_chr_hiddenflag(chr, CHRHFLAG_ANTICANNOTPUSH) \
unset_chr_hiddenflag(chr, CHRHFLAG_ANTINONINTERACTABLE) \
unset_chr_chrflag(chr, CHRCFLAG_HIDDEN) \
yield
@ -1089,7 +1089,7 @@ u8 func1004_guard_activation[] = {
#define enable_bottom_guard(chr) \
show_chr(chr) \
set_ailist(chr, AILIST_INIT_POSTTAKEOVER_GUARD) \
unset_chr_hiddenflag(chr, CHRHFLAG_ANTICANNOTPUSH) \
unset_chr_hiddenflag(chr, CHRHFLAG_ANTINONINTERACTABLE) \
unset_chr_chrflag(chr, CHRCFLAG_HIDDEN) \
yield
@ -2772,7 +2772,7 @@ u8 func0414_officeworker[] = {
set_ailist(CHR_SELF, GAILIST_IDLE)
beginloop(0x6d)
damage_chr(CHR_SELF, 18)
damage_chr(CHR_SELF, WEAPON_SUPERDRAGON)
if_chr_dead(CHR_SELF, /*goto*/ 0x31)
endloop(0x6d)
@ -3836,7 +3836,7 @@ u8 func1003_intro[] = {
remove_chr(0x4a)
remove_chr(0x4b)
remove_chr(0x4c)
set_chr_chrflag(0x49, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x49, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x49, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(0x49, CHRHFLAG_00020000)
chr_do_animation(0x01e9, -2, -1, 0x06, 0x00, 0x49, 2)
@ -3982,7 +3982,7 @@ u8 func1024_double_dy357[] = {
*/
u8 func0416_watch_flag[] = {
beginloop(0x00)
if_chr_has_hiddenflag(CHR_SELF, CHRHFLAG_ANTICANNOTPUSH, /*goto*/ 0x31)
if_chr_has_hiddenflag(CHR_SELF, CHRHFLAG_ANTINONINTERACTABLE, /*goto*/ 0x31)
dprint 'F','L','A','G',' ','N','O','T',' ','S','E','T','\n',0,
reloop(0x00)
@ -4321,27 +4321,27 @@ u8 func1032_unhide_guards_near_plane[] = {
label(0x31)
show_chr(0x1b)
set_ailist(0x1b, 0x0422)
unset_chr_hiddenflag(0x1b, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(0x1b, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_chrflag(0x1b, CHRCFLAG_HIDDEN)
yield
show_chr(0x19)
set_ailist(0x19, AILIST_INIT_POSTTAKEOVER_GUARD)
unset_chr_hiddenflag(0x19, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(0x19, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_chrflag(0x19, CHRCFLAG_HIDDEN)
yield
show_chr(0x1d)
set_ailist(0x1d, AILIST_INIT_POSTTAKEOVER_GUARD)
unset_chr_hiddenflag(0x1d, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(0x1d, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_chrflag(0x1d, CHRCFLAG_HIDDEN)
yield
show_chr(0x1e)
set_ailist(0x1e, AILIST_INIT_POSTTAKEOVER_GUARD)
unset_chr_hiddenflag(0x1e, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(0x1e, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_chrflag(0x1e, CHRCFLAG_HIDDEN)
yield
show_chr(0x20)
set_ailist(0x20, AILIST_INIT_POSTTAKEOVER_GUARD)
unset_chr_hiddenflag(0x20, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(0x20, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_chrflag(0x20, CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist

View File

@ -845,7 +845,7 @@ u8 func0c01_outro[] = {
set_chr_hiddenflag(CHR_P1P2, CHRHFLAG_00020000)
chr_do_animation(0x02e3, -1, -1, 0x06, 0x00, CHR_P1P2, 4)
set_ailist(CHR_ELVIS, GAILIST_IDLE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_ELVIS, CHRHFLAG_00020000)
@ -1184,7 +1184,7 @@ u8 func100c_check_end_level[] = {
if_stage_flag_eq(STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL, TRUE, /*goto*/ 0x00)
set_stage_flag(STAGEFLAG_ELVIS_APPEARED_AT_MOONPOOL)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_ELVIS, AILIST_ELVIS_AT_MOONPOOL)
beginloop(0x00)
@ -1668,7 +1668,7 @@ u8 func0411_labtech_alerted[] = {
u8 func0412_hide[] = {
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -1814,14 +1814,14 @@ u8 func1010_alarm_responders[] = {
set_ailist(0x20, AILIST_GUARD_UNALERTED)
set_ailist(0x22, AILIST_GUARD_UNALERTED)
yield
unset_chr_chrflag(0x57, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x58, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x59, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x5a, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x5b, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x5c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x5d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x5e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x57, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x58, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x59, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x5a, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x5b, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x5c, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x5d, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x5e, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x57, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x58, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x59, CHRCFLAG_HIDDEN)
@ -1830,23 +1830,23 @@ u8 func1010_alarm_responders[] = {
unset_chr_chrflag(0x5c, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x5d, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x5e, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x04, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x25, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x06, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x08, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x0a, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x0c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x0e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x10, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x12, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x18, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1a, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x04, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x25, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x06, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x08, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x0a, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x0c, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x0e, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x10, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x12, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x18, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x1a, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x1c, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x1e, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x04, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x25, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x06, CHRCFLAG_HIDDEN)
@ -2581,7 +2581,7 @@ u8 func0415_elvis_at_start[] = {
stop_chr
set_stage_flag(STAGEFLAG_ELVIS_WARPED_FROM_START)
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
add_health_or_armor(2000)
set_chr_maxdamage(CHR_SELF, 1)
set_ailist(CHR_SELF, GAILIST_IDLE)

View File

@ -1792,7 +1792,7 @@ u8 func040d_intro[] = {
unset_chr_chrflag(CHR_INTRO_VICTIM, CHRCFLAG_UNPLAYABLE)
set_chr_hiddenflag(CHR_INTRO_VICTIM, CHRHFLAG_00020000)
set_chr_chrflag(CHR_INTRO_VICTIM, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_INTRO_VICTIM, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_INTRO_VICTIM, CHRCFLAG_00010000)
chr_do_animation(0x0167, -2, -1, 0x06, 0x00, CHR_INTRO_VICTIM, 2)
@ -2343,7 +2343,7 @@ u8 func0412_cloak_guard[] = {
u8 func0413_cloak1_guard[] = {
yield
set_shotlist(AILIST_CLOAK_GUARD)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
label(0x06)
set_reaction_speed(100)
set_shotlist(AILIST_CLOAK_GUARD)
@ -2361,7 +2361,7 @@ u8 func0413_cloak1_guard[] = {
endloop(0x04)
label(0x06)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_chr_cloaked(CHR_SELF, TRUE, TRUE)
set_ailist(CHR_SELF, AILIST_CLOAK_GUARD)
@ -2371,7 +2371,7 @@ u8 func0413_cloak1_guard[] = {
u8 func0414_init_cloak2_guard[] = {
stop_chr
set_shotlist(AILIST_CLOAK_GUARD)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_chr_dodge_rating(2, 0x0a)
set_accuracy(5)
set_reaction_speed(25)
@ -2379,7 +2379,7 @@ u8 func0414_init_cloak2_guard[] = {
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_chr_cloaked(CHR_SELF, TRUE, TRUE)
set_ailist(CHR_SELF, AILIST_CLOAK_GUARD)
@ -2958,7 +2958,7 @@ u8 func1026_unlock_doors[] = {
u8 func0410_invincible[] = {
label(0x04)
yield
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -2968,7 +2968,7 @@ u8 func0411_hide[] = {
label(0x04)
yield
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist

View File

@ -711,7 +711,7 @@ u8 func041e_colleague[] = {
};
u8 func041f_colleague1[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(0)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -719,7 +719,7 @@ u8 func041f_colleague1[] = {
};
u8 func0420_colleague2[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(1)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -727,7 +727,7 @@ u8 func0420_colleague2[] = {
};
u8 func0421_colleague3[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(2)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -735,7 +735,7 @@ u8 func0421_colleague3[] = {
};
u8 func0422_colleague4[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(3)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -743,7 +743,7 @@ u8 func0422_colleague4[] = {
};
u8 func0423_colleague5[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(4)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -751,7 +751,7 @@ u8 func0423_colleague5[] = {
};
u8 func0424_colleague6[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(5)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -759,7 +759,7 @@ u8 func0424_colleague6[] = {
};
u8 func0425_colleague7[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(6)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -767,7 +767,7 @@ u8 func0425_colleague7[] = {
};
u8 func0426_colleague8[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(7)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -775,7 +775,7 @@ u8 func0426_colleague8[] = {
};
u8 func0427_colleague9[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(8)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -783,7 +783,7 @@ u8 func0427_colleague9[] = {
};
u8 func0428_colleague10[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_morale(9)
set_ailist(CHR_SELF, AILIST_COLLEAGUE)
@ -2874,7 +2874,7 @@ u8 func101b_ir_door[] = {
};
u8 func042b_init_carrington[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
yield
set_morale(0)
@ -4760,7 +4760,7 @@ u8 func0406_holo5_init_guard1[] = {
};
u8 func0407_holo5_guard1[] = {
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
dprint 'C','R','E','A','T','E','D',' ','4',0,
set_shotlist(AILIST_HOLO5_GUARD1)
set_chr_maxdamage(CHR_SELF, 300)
@ -4779,7 +4779,7 @@ u8 func0407_holo5_guard1[] = {
goto_next(0x0a)
label(0x30)
restart_timer
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
beginloop(0x62)
if_timer_gt(60, /*goto*/ 0x63)
@ -4859,13 +4859,13 @@ u8 func0409_holo5_guard2[] = {
if_chr_dead(CHR_SELF, /*goto*/ 0x2f)
if_chr_knockedout(CHR_SELF, /*goto*/ 0x2f)
if_target_in_sight(/*goto*/ 0x09)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_alertness(0)
goto_first(0x08)
label(0x06)
label(0x09)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a)
beginloop(0x0a)
@ -4876,7 +4876,7 @@ u8 func0409_holo5_guard2[] = {
endloop(0x0a)
label(0x2f)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00000040)
beginloop(0x57)
@ -5527,7 +5527,7 @@ u8 func1030_holo7_main[] = {
};
u8 func0412_holo7_init_guard1[] = {
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
set_chr_id(0x19)
try_equip_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06)
label(0x06)
@ -5536,7 +5536,7 @@ u8 func0412_holo7_init_guard1[] = {
};
u8 func0413_holo7_init_guard2[] = {
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
set_chr_id(0x1a)
try_equip_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06)
label(0x06)
@ -5545,7 +5545,7 @@ u8 func0413_holo7_init_guard2[] = {
};
u8 func0414_holo7_init_guard3[] = {
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
set_chr_id(0x1b)
try_equip_weapon(MODEL_CHRFALCON2, WEAPON_FALCON2, 0x00000000, /*goto*/ 0x06)
label(0x06)

View File

@ -2333,7 +2333,7 @@ u8 func0416_intro[] = {
chr_do_animation(0x00f6, -2, -1, 0x06, 0x00, CHR_BOND, 2)
unset_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_UNPLAYABLE)
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_INTRO_GUARD, CHRCFLAG_INVINCIBLE)
set_chr_hiddenflag(CHR_INTRO_GUARD, CHRHFLAG_00020000)
chr_do_animation(0x00f7, -2, -1, 0x06, 0x00, CHR_INTRO_GUARD, 2)
@ -2784,7 +2784,7 @@ u8 func0415_radioactivity[] = {
add_motion_blur(CHR_TARGET, 10, TRUE)
if_timer_lt(300, /*goto*/ 0x2f)
restart_timer
poison_chr(CHR_TARGET, 4, 0)
damage_chr_by_amount(CHR_TARGET, 4, 0)
label(0x2f)
if_chr_in_room(CHR_TARGET, 0x00, 0x0014, /*goto*/ 0x06)
if_chr_in_room(CHR_TARGET, 0x00, 0x0015, /*goto*/ 0x06)

View File

@ -1237,7 +1237,7 @@ u8 func0408_outro[] = {
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN)
set_ailist(CHR_P1P2, GAILIST_IDLE)
set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_UNEXPLODABLE)
set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE)
@ -1450,7 +1450,7 @@ u8 func1004_check_negotiator[] = {
u8 func0401_init_taker[] = {
set_chr_maxdamage(CHR_SELF, 1)
if_difficulty_gt(DIFF_SA, /*goto*/ 0x2d)
unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
label(0x2d)
set_ailist(CHR_SELF, AILIST_TAKER)
endlist
@ -2954,7 +2954,7 @@ u8 func0407_init_sniper[] = {
u8 func0410_carrington[] = {
yield
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_chr_maxdamage(CHR_SELF, 1)
chr_do_animation(0x017b, 1, 1, 0x06, 0x00, CHR_CARRINGTON, 2)
@ -3122,7 +3122,7 @@ u8 func1423_setup_environment[] = {
u8 func1021_toggle_last_basement_guard[] = {
set_chr_chrflag(CHR_BASEMENT9, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BASEMENT9, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BASEMENT9, CHRCFLAG_INVINCIBLE)
beginloop(0x04)
if_difficulty_gt(DIFF_SA, /*goto*/ 0x2d)
@ -3150,7 +3150,7 @@ u8 func1021_toggle_last_basement_guard[] = {
label(0x2d)
unset_chr_chrflag(CHR_BASEMENT9, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_BASEMENT9, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BASEMENT9, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -3165,7 +3165,7 @@ u8 func1022_setup_rtracker[] = {
};
u8 func0411_cisoldier[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
chr_drop_weapon(CHR_SELF)
label(0x08)
yield

View File

@ -646,7 +646,7 @@ u8 func0403_init_clone1[] = {
};
u8 func0402_clone1[] = {
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
run_to_pad(0x00c2)
set_returnlist(CHR_SELF, AILIST_CLONE1)
set_ailist(CHR_SELF, GAILIST_UNALERTED)
@ -1547,21 +1547,21 @@ u8 func1003_hide_blondes_and_skedar[] = {
set_chr_chrflag(CHR_SKEDAR1, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SKEDAR2, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SKEDAR3, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SKEDAR1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SKEDAR2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SKEDAR3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SKEDAR1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_SKEDAR2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_SKEDAR3, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BLONDE1, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BLONDE2, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BLONDE3, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BLONDE4, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BLONDE5, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BLONDE6, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BLONDE1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BLONDE2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BLONDE3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BLONDE4, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BLONDE5, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BLONDE6, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BLONDE1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BLONDE2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BLONDE3, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BLONDE4, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BLONDE5, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BLONDE6, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -1648,10 +1648,10 @@ u8 func0414_firingrange_hostage[] = {
};
u8 func100e_setup_firingrange[] = {
set_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TAKER_FR2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_TAKER_FR2, CHRCFLAG_INVINCIBLE)
// Wait until guns complete or failed, or skip this check if Agent
beginloop(0x04)
@ -1696,10 +1696,10 @@ u8 func100e_setup_firingrange[] = {
// Unset invincible on hostages and takers
label(0x08)
destroy_object(OBJ_FR_GLASS)
unset_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TAKER_FR2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_HOSTAGE_FR1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_HOSTAGE_FR2, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TAKER_FR2, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -2700,7 +2700,7 @@ u8 func1014_carrington_messages[] = {
endloop(0x0d)
label(0x08)
set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CARRINGTON, CHRCFLAG_HIDDEN)
unlock_door(0x23, 0x04)
unlock_door(0x24, 0x04)
@ -3212,12 +3212,12 @@ u8 func1022_skedar_shuttle[] = {
unset_chr_chrflag(CHR_BLONDE4, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_BLONDE5, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_BLONDE6, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_BLONDE1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BLONDE2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BLONDE3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BLONDE4, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BLONDE5, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BLONDE6, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BLONDE1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BLONDE2, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BLONDE3, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BLONDE4, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BLONDE5, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BLONDE6, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_BLONDE1, AILIST_INIT_BLONDE)
set_ailist(CHR_BLONDE2, AILIST_INIT_BLONDE)
set_ailist(CHR_BLONDE3, AILIST_INIT_BLONDE)
@ -3439,7 +3439,7 @@ u8 func1018_hurt_carrington[] = {
endloop(0x0a)
label(0x08)
damage_chr(CHR_CARRINGTON, 18)
damage_chr(CHR_CARRINGTON, WEAPON_SUPERDRAGON)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -3961,11 +3961,11 @@ u8 unregistered_function3[] = {
reloop(0x03)
label(0x11)
damage_chr(CHR_TAKER_INFO_F, 18)
damage_chr(CHR_TAKER_INFO_F, WEAPON_SUPERDRAGON)
reloop(0x03)
label(0x12)
damage_chr(CHR_TAKER_INFO_M, 18)
damage_chr(CHR_TAKER_INFO_M, WEAPON_SUPERDRAGON)
endloop(0x03)
endlist
@ -3980,7 +3980,7 @@ u8 func102d_firingrange_taker_invincibility[] = {
if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x0008, /*goto*/ 0x2e)
if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x0009, /*goto*/ 0x2e)
if_chr_in_room(CHR_TAKER_FR1, 0x00, 0x000a, /*goto*/ 0x2e)
unset_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TAKER_FR1, CHRCFLAG_INVINCIBLE)
label(0x2e)
if_chr_death_animation_finished(CHR_TAKER_FR2, /*goto*/ 0x2e)
@ -3990,7 +3990,7 @@ u8 func102d_firingrange_taker_invincibility[] = {
if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x0008, /*goto*/ 0x2e)
if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x0009, /*goto*/ 0x2e)
if_chr_in_room(CHR_TAKER_FR2, 0x00, 0x000a, /*goto*/ 0x2e)
unset_chr_chrflag(CHR_TAKER_FR2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TAKER_FR2, CHRCFLAG_INVINCIBLE)
label(0x2e)
endloop(0x03)

View File

@ -666,7 +666,7 @@ u8 func040d_elvis_wait_for_hangar_entry[] = {
add_health_or_armor(200)
set_alertness(100)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_RUNFASTER)
set_self_chrflag(CHRCFLAG_NOAUTOAIM)
@ -695,7 +695,7 @@ u8 func040d_elvis_wait_for_hangar_entry[] = {
label(0x06)
unset_self_chrflag(CHRCFLAG_HIDDEN)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
yield
yield
yield
@ -2808,7 +2808,7 @@ u8 func0c01_outro[] = {
set_chr_hiddenflag(CHR_TARGET, CHRHFLAG_00020000)
chr_do_animation(0x01e2, -1, -1, 0x06, 0x00, CHR_TARGET, 4)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_ELVIS, GAILIST_IDLE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN)
@ -3164,9 +3164,9 @@ u8 func1016_msg_ifwecontrolthebridge[] = {
label(0x2c)
set_stage_flag(STAGEFLAG_ENTERED_BRIDGELIFT)
unset_chr_chrflag(CHR_BRIDGE1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BRIDGE2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BRIDGE3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BRIDGE1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BRIDGE2, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_BRIDGE3, CHRCFLAG_INVINCIBLE)
speak(CHR_P1P2, L_LEE_030, MP3_03DF, CHANNEL_6, COLOR_09_BLUE) // "If we control the bridge, then the ship is ours."
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -3199,7 +3199,7 @@ u8 func0422_cass[] = {
set_stage_flag(STAGEFLAG_CASS_SCREAMING)
beginloop(0xc2)
damage_chr(CHR_SELF, 18)
damage_chr(CHR_SELF, WEAPON_SUPERDRAGON)
if_chr_death_animation_finished(CHR_SELF, /*goto*/ 0x2c)
if_chr_dead(CHR_SELF, /*goto*/ 0x2c)
if_chr_knockedout(CHR_SELF, /*goto*/ 0x2c)
@ -3397,13 +3397,13 @@ u8 func1002_hangar_shuttle[] = {
u8 func101a_kill_maian[] = {
yield
damage_chr(CHR_MAIAN3, 18)
damage_chr(CHR_MAIAN3, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_MAIAN3, 18)
damage_chr(CHR_MAIAN3, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_MAIAN3, 18)
damage_chr(CHR_MAIAN3, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_MAIAN3, 18)
damage_chr(CHR_MAIAN3, WEAPON_SUPERDRAGON)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -3587,9 +3587,9 @@ u8 func040b_init_cass[] = {
};
u8 func1024_set_bridge_skedar_invincible[] = {
set_chr_chrflag(CHR_BRIDGE1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BRIDGE2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BRIDGE3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BRIDGE1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BRIDGE2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BRIDGE3, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_BRIDGE1, CHRCFLAG_UNEXPLODABLE)
set_chr_chrflag(CHR_BRIDGE2, CHRCFLAG_UNEXPLODABLE)
set_chr_chrflag(CHR_BRIDGE3, CHRCFLAG_UNEXPLODABLE)

View File

@ -1267,7 +1267,7 @@ u8 func0411_labtech_showers_agent[] = {
endloop(0x04)
beginloop(0x64)
damage_chr(CHR_SELF, 18)
damage_chr(CHR_SELF, WEAPON_SUPERDRAGON)
if_chr_dead(CHR_SELF, /*goto*/ 0x2d)
endloop(0x64)
@ -2380,7 +2380,7 @@ u8 func1011_unhide_warehouse_spawner[] = {
// Unhide a guy at the top of the ramp near the start
label(0x06)
unset_chr_chrflag(0x44, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x44, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x44, CHRCFLAG_INVINCIBLE)
set_ailist(0x44, AILIST_WAREHOUSE_SPAWNER)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -2511,7 +2511,7 @@ u8 func1014_check_crate_destroyed[] = {
*/
u8 func041c_unused_041c[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -2521,7 +2521,7 @@ u8 func041c_unused_041c[] = {
*/
u8 func041d_unused_041d[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -2537,7 +2537,7 @@ u8 func041e_unused_041e[] = {
add_health_or_armor(0)
set_recovery_speed(0)
set_shield(0)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -3442,7 +3442,7 @@ u8 func1020_chamber8[] = {
u8 func0424_alien[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, AILIST_CHECK_LOOKING_AT_ALIEN)
endlist
};
@ -3453,7 +3453,7 @@ u8 func0424_alien[] = {
*/
u8 func0425_hiddenguy[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -3918,7 +3918,7 @@ u8 func1002_intro[] = {
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_UNPLAYABLE)
remove_chr(CHR_JONATHAN)
unset_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_UNPLAYABLE)
set_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_INTRO_DEAD_GUARD, CHRCFLAG_INVINCIBLE)
set_chr_hiddenflag(CHR_INTRO_DEAD_GUARD, CHRHFLAG_00020000)
chr_do_animation(0x01c9, -2, -1, 0x06, 0x00, CHR_INTRO_DEAD_GUARD, 2)
mute_channel(CHANNEL_10)
@ -3957,24 +3957,24 @@ u8 func1024_noop[] = {
u8 func1025_toggle_guards[] = {
set_chr_chrflag(0x33, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x34, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x33, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x34, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x33, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x34, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x37, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2c, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2d, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2e, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x37, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x2c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x2d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x2e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x37, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2c, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2d, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2e, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x2f, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x30, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x31, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x32, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x2f, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x30, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x31, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x32, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x2f, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x30, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x31, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x32, CHRCFLAG_INVINCIBLE)
beginloop(0x08)
chr_toggle_p1p2(CHR_SELF)
@ -3985,18 +3985,18 @@ u8 func1025_toggle_guards[] = {
unset_chr_hiddenflag(CHR_BOND, CHRHFLAG_DISGUISED)
unset_chr_chrflag(0x33, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x34, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x33, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x34, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x33, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x34, CHRCFLAG_INVINCIBLE)
set_ailist(0x33, AILIST_BIOTECH_GUARD_ALERTED)
set_ailist(0x34, AILIST_BIOTECH_GUARD_ALERTED)
unset_chr_chrflag(0x37, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2c, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2d, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2e, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x37, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x2c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x2d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x2e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x37, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x2c, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x2d, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x2e, CHRCFLAG_INVINCIBLE)
set_ailist(0x37, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x2c, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x2d, AILIST_SUPERDRAGON_GUARD)
@ -4005,10 +4005,10 @@ u8 func1025_toggle_guards[] = {
unset_chr_chrflag(0x30, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x31, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x32, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x2f, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x30, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x31, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x32, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x2f, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x30, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x31, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x32, CHRCFLAG_INVINCIBLE)
set_ailist(0x2f, AILIST_BIOTECH_GUARD)
set_ailist(0x30, AILIST_SUPERDRAGON_GUARD)
set_ailist(0x31, AILIST_SUPERDRAGON_GUARD)
@ -4027,7 +4027,7 @@ u8 func0429_spawn_while_xraying[] = {
set_shield(0)
set_self_chrflag(CHRCFLAG_CLONEABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
restart_timer
@ -4437,7 +4437,7 @@ u8 func1030_lift_door_sounds[] = {
u8 func1031_toggle_doorman[] = {
yield
set_chr_chrflag(CHR_DOORMAN, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_DOORMAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_DOORMAN, CHRCFLAG_INVINCIBLE)
beginloop(0x5e)
label(0x2d)
@ -4452,7 +4452,7 @@ u8 func1031_toggle_doorman[] = {
label(0x2d)
unset_chr_chrflag(CHR_DOORMAN, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_DOORMAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_DOORMAN, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -4637,14 +4637,14 @@ u8 func1435_setup_environment[] = {
};
u8 func0432_init_biotech1[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, AILIST_BIOTECH1)
endlist
};
u8 func0433_init_biotech2[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, AILIST_BIOTECH2)
endlist

View File

@ -1560,22 +1560,22 @@ u8 func0417_traitor[] = {
label(0x0c)
if_chr_death_animation_finished(0x2f, /*goto*/ 0x2e)
chr_shoot_chr(CHR_SELF, 0x2f, WEAPON_DY357MAGNUM)
chr_damage_chr(CHR_SELF, 0x2f, IBH_HEAD)
goto_next(0x06)
label(0x2e)
if_chr_death_animation_finished(0x2e, /*goto*/ 0x2e)
chr_shoot_chr(CHR_SELF, 0x2e, WEAPON_DY357MAGNUM)
chr_damage_chr(CHR_SELF, 0x2e, IBH_HEAD)
goto_next(0x06)
label(0x2e)
if_chr_death_animation_finished(0x2d, /*goto*/ 0x2e)
chr_shoot_chr(CHR_SELF, 0x2d, WEAPON_DY357MAGNUM)
chr_damage_chr(CHR_SELF, 0x2d, IBH_HEAD)
goto_next(0x06)
label(0x2e)
if_chr_death_animation_finished(0x2c, /*goto*/ 0x06)
chr_shoot_chr(CHR_SELF, 0x2c, WEAPON_DY357MAGNUM)
chr_damage_chr(CHR_SELF, 0x2c, IBH_HEAD)
label(0x06)
goto_first(0x09)
@ -1782,8 +1782,8 @@ u8 func040e_outro[] = {
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
set_chr_chrflag(0xf1, CHRCFLAG_HIDDEN)
set_ailist(CHR_P1P2, GAILIST_IDLE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_OUTRO_GUARD, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_OUTRO_GUARD, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_P1P2, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_P1P2, CHRCFLAG_UNPLAYABLE)
@ -2582,13 +2582,13 @@ u8 func1018_unhide_guards[] = {
set_chr_chrflag(0x22, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x23, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x24, CHRCFLAG_HIDDEN)
set_chr_chrflag(0x35, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x1f, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x21, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x23, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x24, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x35, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x1f, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x21, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x23, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x24, CHRCFLAG_INVINCIBLE)
// Agent: wait until guards 0x10 and 0x11 are dead
// (two guards near antenna blue door)
@ -2616,10 +2616,10 @@ u8 func1018_unhide_guards[] = {
unset_chr_chrflag(0x20, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x21, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x22, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1f, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x21, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1f, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x20, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x21, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x22, CHRCFLAG_INVINCIBLE)
set_ailist(0x1f, AILIST_TROOPER_ALERTED)
set_ailist(0x20, AILIST_TROOPER_ALERTED)
set_ailist(0x21, AILIST_TROOPER_ALERTED)
@ -2635,8 +2635,8 @@ u8 func1018_unhide_guards[] = {
label(0x2e)
unset_chr_chrflag(0x23, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x24, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x23, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x24, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x23, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x24, CHRCFLAG_INVINCIBLE)
set_ailist(0x23, AILIST_DRAGON_ALERTED)
set_ailist(0x24, AILIST_DRAGON_ALERTED)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -2653,7 +2653,7 @@ u8 func0419_clone_spawner[] = {
set_shield(0)
set_self_chrflag(CHRCFLAG_CLONEABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
beginloop(0x04)
@ -2671,7 +2671,7 @@ u8 func0419_clone_spawner[] = {
label(0x4f)
unset_self_chrflag(CHRCFLAG_HIDDEN)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f)
reloop(0x04)
@ -2755,7 +2755,7 @@ u8 func1019_spawn_guards_at_antenna[] = {
yield
yield
unset_chr_chrflag(0x35, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x35, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x35, CHRCFLAG_INVINCIBLE)
set_ailist(0x35, GAILIST_SEARCH_FOR_PLAYER)
rebuild_teams
rebuild_squadrons
@ -2982,13 +2982,13 @@ u8 func1020_choose_autogun_guard[] = {
u8 func1021_damage_rl_guard[] = {
yield
damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18)
damage_chr(CHR_ROCKETLAUNCHER_GUARD, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18)
damage_chr(CHR_ROCKETLAUNCHER_GUARD, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18)
damage_chr(CHR_ROCKETLAUNCHER_GUARD, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_ROCKETLAUNCHER_GUARD, 18)
damage_chr(CHR_ROCKETLAUNCHER_GUARD, WEAPON_SUPERDRAGON)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -3205,7 +3205,7 @@ u8 func0424_activate_lasers[] = {
u8 func0425_a7d4[] = {
label(0x04)
yield
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -3217,7 +3217,7 @@ u8 func0425_a7d4[] = {
u8 func041c_template_guard[] = {
label(0x04)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist

View File

@ -906,9 +906,9 @@ u8 func0402_elvis_follow_and_reactive_teleportals[] = {
set_chr_chrflag(0x14, CHRCFLAG_00040000)
set_chr_chrflag(0x15, CHRCFLAG_00040000)
set_chr_chrflag(0x16, CHRCFLAG_00040000)
unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x15, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x15, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE)
set_ailist(0x14, AILIST_TELEPORT_ACTIVATION_RESPONDER)
set_ailist(0x15, AILIST_TELEPORT_ACTIVATION_RESPONDER)
set_ailist(0x16, AILIST_TELEPORT_ACTIVATION_RESPONDER)
@ -1881,13 +1881,13 @@ u8 func0c02_outro[] = {
play_cutscene_track(MUSIC_DEEPSEA_OUTRO)
camera_movement(0x02d7)
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ANTI, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
restart_timer
// @bug: Missing button checks makes the outro unskippable until a certain
@ -1990,13 +1990,13 @@ u8 func0c02_outro[] = {
label(0x57)
if_all_objectives_complete(/*goto*/ 0x06)
unset_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_ANTI, CHRCFLAG_INVINCIBLE)
explosions_around_chr(CHR_BOND)
label(0x2e)
unset_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE)
enter_firstperson
grant_control(CHR_BOND)
restart_timer
@ -3333,8 +3333,8 @@ u8 func100c_countdown_timer[] = {
// Mission complete
label(0x06)
set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, AILIST_OUTRO)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -3559,7 +3559,7 @@ u8 func1010_agent_hallway_spawner[] = {
};
u8 func0411_hide[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -3579,7 +3579,7 @@ u8 func0413_cloak_and_hide[] = {
set_chr_cloaked(CHR_SELF, TRUE, FALSE)
stop_chr
yield
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -4428,9 +4428,9 @@ u8 func1028_enable_last_3_guards[] = {
unset_chr_chrflag(0x3c, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x3d, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x3e, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x3c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x3d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x3e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x3c, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x3d, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(0x3e, CHRCFLAG_INVINCIBLE)
set_ailist(0x3c, AILIST_RUN_TO_EXIT)
set_ailist(0x3d, AILIST_RUN_TO_EXIT)
set_ailist(0x3e, AILIST_RUN_TO_EXIT)
@ -4462,13 +4462,13 @@ u8 func1429_start_lift[] = {
u8 func102a_kill_pelagic_guard[] = {
yield
damage_chr(0x3f, 18)
damage_chr(0x3f, WEAPON_SUPERDRAGON)
yield
damage_chr(0x3f, 18)
damage_chr(0x3f, WEAPON_SUPERDRAGON)
yield
damage_chr(0x3f, 18)
damage_chr(0x3f, WEAPON_SUPERDRAGON)
yield
damage_chr(0x3f, 18)
damage_chr(0x3f, WEAPON_SUPERDRAGON)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -4534,7 +4534,7 @@ u8 func040f_miniskedar_unalerted[] = {
};
u8 func0432_dead_skedar[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
label(0x08)
yield

View File

@ -2067,7 +2067,7 @@ u8 func041a_robot[] = {
set_chr_chrflag(CHR_ROBOT, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(CHR_ROBOT, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(CHR_ROBOT, CHRHFLAG_00020000)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
unset_chr_hiddenflag(CHR_SELF, CHRHFLAG_10000000)
set_ailist(CHR_ROBOT, GAILIST_IDLE)
set_shield(0)
@ -2356,7 +2356,7 @@ u8 func100d_spawn_alarm_responders[] = {
u8 func041f_alarm_responder[] = {
set_self_flag_bankx(CHRFLAG1_00080000, BANK_1)
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
set_chr_dodge_rating(2, 0x0a)
set_accuracy(14)
set_reaction_speed(20)
@ -2841,7 +2841,7 @@ u8 func1416_setup_rain[] = {
u8 func041c_hiddenguy[] = {
set_chr_chrflag(CHR_HIDDENGUY, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_HIDDENGUY, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_HIDDENGUY, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -3198,10 +3198,10 @@ u8 func0412_cia_invincibility[] = {
endloop(0x10)
label(0x03)
set_chr_chrflag(CHR_CIA1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CIA2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CIA3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CIA4, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CIA1, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CIA2, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CIA3, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_CIA4, CHRCFLAG_INVINCIBLE)
beginloop(0x2d)
if_stage_flag_eq(STAGEFLAG_DIVERSION_CREATED, TRUE, /*goto*/ 0x03)
@ -3215,10 +3215,10 @@ u8 func0412_cia_invincibility[] = {
endloop(0x2f)
label(0x03)
unset_chr_chrflag(CHR_CIA1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_CIA2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_CIA3, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_CIA4, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_CIA1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_CIA2, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_CIA3, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_CIA4, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};

View File

@ -688,7 +688,7 @@ u8 func0401_init_stripes[] = {
u8 func0402_init_elvis[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -828,9 +828,9 @@ u8 func1006_hijack[] = {
set_chr_team(CHR_TRENT, TEAM_04)
set_chr_team(CHR_BLONDE1, TEAM_04)
set_chr_team(CHR_BLONDE2, TEAM_04)
unset_chr_hiddenflag(CHR_TRENT, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(CHR_BLONDE1, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(CHR_BLONDE2, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(CHR_TRENT, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_hiddenflag(CHR_BLONDE1, CHRHFLAG_ANTINONINTERACTABLE)
unset_chr_hiddenflag(CHR_BLONDE2, CHRHFLAG_ANTINONINTERACTABLE)
unlock_door(OBJ_COCKPITDOOR, 0x40)
rebuild_teams
rebuild_squadrons
@ -1745,7 +1745,7 @@ u8 func0413_taker2[] = {
u8 func0413_taker[] = {
set_shotlist(GAILIST_ALERTED)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_chr_team(CHR_SELF, TEAM_04)
rebuild_teams
rebuild_squadrons
@ -1793,7 +1793,7 @@ u8 func0413_taker[] = {
goto_next(0x11)
label(0x2d)
damage_chr(CHR_TARGET, 18)
damage_chr(CHR_TARGET, WEAPON_SUPERDRAGON)
beginloop(0x0b)
if_chr_stopped(/*goto*/ 0x06)
@ -1831,8 +1831,8 @@ u8 func100c_cockpit[] = {
if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x11)
unset_chr_chrflag(CHR_TAKER1, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_TAKER2, CHRCFLAG_HIDDEN)
unset_chr_chrflag(CHR_TAKER1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TAKER2, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_TAKER1, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_TAKER2, CHRCFLAG_INVINCIBLE)
label(0x06)
// This loop will surely never iterate because
@ -1860,14 +1860,14 @@ u8 func100c_cockpit[] = {
// At least one taker alive
label(0x06)
damage_chr(CHR_PILOT1, 18)
damage_chr(CHR_PILOT2, 18)
damage_chr(CHR_PILOT1, WEAPON_SUPERDRAGON)
damage_chr(CHR_PILOT2, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_PILOT1, 18)
damage_chr(CHR_PILOT2, 18)
damage_chr(CHR_PILOT1, WEAPON_SUPERDRAGON)
damage_chr(CHR_PILOT2, WEAPON_SUPERDRAGON)
yield
damage_chr(CHR_PILOT1, 18)
damage_chr(CHR_PILOT2, 18)
damage_chr(CHR_PILOT1, WEAPON_SUPERDRAGON)
damage_chr(CHR_PILOT2, WEAPON_SUPERDRAGON)
yield
set_stage_flag(STAGEFLAG_PILOTS_DEAD)
show_hudmsg(CHR_BOND, L_RIT_027) // "Pilots have been killed."
@ -2871,7 +2871,7 @@ u8 func0421_trent_waiting[] = {
rebuild_squadrons
set_self_chrflag(CHRCFLAG_00000040)
set_shield(500)
set_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_TRENT, CHRCFLAG_INVINCIBLE)
beginloop(0x04)
chr_toggle_p1p2(CHR_SELF)
@ -3754,7 +3754,7 @@ u8 func101c_check_equipment_switch_destroyed[] = {
};
u8 func040c_init_defend_pad[] = {
unset_chr_hiddenflag(CHR_SELF, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(CHR_SELF, CHRHFLAG_ANTINONINTERACTABLE)
set_chr_team(CHR_SELF, TEAM_ALLY)
rebuild_teams
rebuild_squadrons
@ -3786,7 +3786,7 @@ u8 func040d_init_defend_president[] = {
};
u8 func042c_remove_if_offscreen[] = {
unset_chr_hiddenflag(CHR_SELF, CHRHFLAG_ANTICANNOTPUSH)
unset_chr_hiddenflag(CHR_SELF, CHRHFLAG_ANTINONINTERACTABLE)
set_chr_team(CHR_SELF, TEAM_ALLY)
rebuild_teams
rebuild_squadrons

View File

@ -1359,8 +1359,8 @@ u8 func1009_check_for_exit[] = {
endloop(0x08)
label(0x2c)
set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_BOND, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_COOP, CHRCFLAG_INVINCIBLE)
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2c)
if_chr_dead(CHR_BOND, /*goto*/ 0x2c)
if_chr_knockedout(CHR_BOND, /*goto*/ 0x2c)
@ -1637,7 +1637,7 @@ u8 func041b_outro[] = {
u8 func0419_init_outro_guard[] = {
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};

View File

@ -1934,7 +1934,7 @@ u8 func040c_king_waiting[] = {
if_difficulty_gt(DIFF_A, /*goto*/ 0x2d)
set_self_chrflag(CHRCFLAG_00000020)
label(0x2d)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_10000000)
set_morale(0)
@ -1953,7 +1953,7 @@ u8 func040c_king_waiting[] = {
endloop(0x09)
label(0x2d)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, AILIST_KING_COMBAT)
endlist
};
@ -2282,7 +2282,7 @@ u8 func040d_king_combat[] = {
u8 func040e_king_skedar_spawner[] = {
set_self_chrflag(CHRCFLAG_CLONEABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_00100000)
@ -2339,7 +2339,7 @@ u8 func0410_init_king_skedar_clone[] = {
u8 func0411_king_miniskedar_spawner[] = {
set_self_chrflag(CHRCFLAG_CLONEABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_00100000)
@ -2993,7 +2993,7 @@ u8 func0414_outro[] = {
};
u8 func0413_hide[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist

View File

@ -1009,7 +1009,7 @@ u8 func1007_check_end_level[] = {
u8 func040c_hide[] = {
label(0x03)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -1027,11 +1027,11 @@ u8 func100d_king1_invincible[] = {
if_chr_in_room(CHR_BOND, 0x00, 0x0077, /*goto*/ 0x2d)
if_chr_in_room(CHR_BOND, 0x00, 0x0078, /*goto*/ 0x2d)
if_chr_in_room(CHR_BOND, 0x00, 0x0079, /*goto*/ 0x2d)
set_chr_chrflag(CHR_KING1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_KING1, CHRCFLAG_INVINCIBLE)
reloop(0x03)
label(0x2d)
unset_chr_chrflag(CHR_KING1, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_KING1, CHRCFLAG_INVINCIBLE)
endloop(0x03)
endlist

View File

@ -660,7 +660,7 @@ u8 func0401_gas_damage[] = {
label(0x32)
if_timer_lt(460, /*goto*/ 0x32)
restart_timer
poison_chr(CHR_TARGET, 2, 2)
damage_chr_by_amount(CHR_TARGET, 2, 2)
label(0x32)
if_chr_in_room(CHR_TARGET, 0x00, 0x009a, /*goto*/ 0x06)
if_chr_in_room(CHR_TARGET, 0x00, 0x0099, /*goto*/ 0x06)
@ -2306,7 +2306,7 @@ u8 func1012_hoverbike_auto_doors[] = {
u8 func040c_hidden_guardtype1[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -2328,34 +2328,34 @@ u8 func1016_enable_guards_after_meetup[] = {
show_chr(0x15)
show_chr(0x16)
unset_chr_chrflag(0x0d, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x0d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x0d, CHRCFLAG_INVINCIBLE)
set_ailist(0x0d, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x0e, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x0e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x0e, CHRCFLAG_INVINCIBLE)
set_ailist(0x0e, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x0f, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x0f, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x0f, CHRCFLAG_INVINCIBLE)
set_ailist(0x0f, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x10, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x10, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x10, CHRCFLAG_INVINCIBLE)
set_ailist(0x10, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x11, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x11, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x11, CHRCFLAG_INVINCIBLE)
set_ailist(0x11, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x12, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x12, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x12, CHRCFLAG_INVINCIBLE)
set_ailist(0x12, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x13, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x13, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x13, CHRCFLAG_INVINCIBLE)
set_ailist(0x13, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x14, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x14, CHRCFLAG_INVINCIBLE)
set_ailist(0x14, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x15, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x15, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x15, CHRCFLAG_INVINCIBLE)
set_ailist(0x15, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x16, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE)
set_ailist(0x16, AILIST_INIT_SUPERDRAGON_GUARD)
rebuild_teams
rebuild_squadrons
@ -2381,7 +2381,7 @@ u8 func1017_check_both_hangar_doors_open[] = {
u8 func040d_hidden_guardtype2[] = {
set_chr_chrflag(CHR_SELF, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_SELF, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -2393,34 +2393,34 @@ u8 func1018_unhide_guards_when_jo_escaping[] = {
label(0x06)
unset_chr_chrflag(0x16, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x16, CHRCFLAG_INVINCIBLE)
set_ailist(0x16, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x17, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x17, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x17, CHRCFLAG_INVINCIBLE)
set_ailist(0x17, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x18, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x18, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x18, CHRCFLAG_INVINCIBLE)
set_ailist(0x18, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x19, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x19, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x19, CHRCFLAG_INVINCIBLE)
set_ailist(0x19, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x1a, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1a, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1a, CHRCFLAG_INVINCIBLE)
set_ailist(0x1a, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x1b, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1b, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1b, CHRCFLAG_INVINCIBLE)
set_ailist(0x1b, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x1c, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1c, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1c, CHRCFLAG_INVINCIBLE)
set_ailist(0x1c, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x1d, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1d, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1d, CHRCFLAG_INVINCIBLE)
set_ailist(0x1d, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x1e, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1e, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1e, CHRCFLAG_INVINCIBLE)
set_ailist(0x1e, AILIST_INIT_SUPERDRAGON_GUARD)
unset_chr_chrflag(0x1f, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x1f, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x1f, CHRCFLAG_INVINCIBLE)
set_ailist(0x1f, AILIST_INIT_SUPERDRAGON_GUARD)
unlock_door(0x0c, 0x40)
unlock_door(0x15, 0x40)
@ -2438,7 +2438,7 @@ u8 func1018_unhide_guards_when_jo_escaping[] = {
u8 func040e_hidden_biotech[] = {
label(0x04)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
@ -2450,16 +2450,16 @@ u8 func1019_enable_biotechs_after_stash[] = {
label(0x32)
unset_chr_chrflag(0x25, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x25, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x25, CHRCFLAG_INVINCIBLE)
set_ailist(0x25, AILIST_INIT_BIOTECH)
unset_chr_chrflag(0x26, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x26, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x26, CHRCFLAG_INVINCIBLE)
set_ailist(0x26, AILIST_INIT_BIOTECH)
unset_chr_chrflag(0x27, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x27, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x27, CHRCFLAG_INVINCIBLE)
set_ailist(0x27, AILIST_INIT_BIOTECH)
unset_chr_chrflag(0x28, CHRCFLAG_HIDDEN)
unset_chr_chrflag(0x28, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(0x28, CHRCFLAG_INVINCIBLE)
set_ailist(0x28, AILIST_INIT_BIOTECH)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
@ -2476,13 +2476,13 @@ u8 func1002_intro[] = {
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
chr_do_animation(0x019d, -1, -1, 0x06, 0x00, CHR_BOND, 4)
set_chr_chrflag(0x23, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x23, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x23, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(0x23, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(0x23, CHRHFLAG_00020000)
chr_do_animation(0x019e, -1, -1, 0x06, 0x00, 0x23, 4)
set_chr_chrflag(0x24, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(0x24, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(0x24, CHRCFLAG_UNPLAYABLE)
unset_chr_chrflag(0x24, CHRCFLAG_HIDDEN)
set_chr_hiddenflag(0x24, CHRHFLAG_00020000)
@ -2818,8 +2818,8 @@ u8 func0c01_midcutscene[] = {
label(0x06)
unset_chr_chrflag(CHR_TARGET, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_JONATHAN, GAILIST_IDLE)
set_chr_chrflag(CHR_TARGET, CHRCFLAG_UNPLAYABLE)
@ -2982,8 +2982,8 @@ u8 func0c01_midcutscene[] = {
object_do_animation(0x01cf, 0x11, 0x04, 0xfffe)
unset_object_flag2(0x0a, OBJFLAG2_AICANNOTUSE)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
unset_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE)
set_ailist(CHR_JONATHAN, AILIST_JONATHAN_HANGAR)
set_ailist(CHR_ELVIS, AILIST_INIT_ELVIS)
if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x32)
@ -3110,8 +3110,8 @@ u8 func0415_ufo_exit[] = {
object_do_animation(0x02d3, OBJ_UFO1, 0x04, 0xffff)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_INVINCIBLE)
set_chr_chrflag(CHR_ELVIS, CHRCFLAG_UNEXPLODABLE)
set_chr_chrflag(CHR_JONATHAN, CHRCFLAG_UNEXPLODABLE)
set_stage_flag(STAGEFLAG_UFO_LEAVING)
@ -3215,7 +3215,7 @@ u8 func0416_spawn_during_follow[] = {
set_self_chrflag(CHRCFLAG_00040000)
set_self_chrflag(CHRCFLAG_CLONEABLE)
set_self_chrflag(CHRCFLAG_HIDDEN)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
beginloop(0x04)
if_can_see_target(/*goto*/ 0x32)

View File

@ -1276,7 +1276,7 @@ u8 func0411_cass_in_office[] = {
// Not dying
label(0x06)
if_has_gun(CHR_SELF, /*goto*/ 0x2c)
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_stage_flag(STAGEFLAG_TRIGGER_YWSM)
set_shotlist(AILIST_CASS_RUNNING)
restart_timer
@ -1290,7 +1290,7 @@ u8 func0411_cass_in_office[] = {
endloop(0x08)
label(0x06)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_ailist(CHR_SELF, AILIST_CASS_RUNNING)
// Waiting for player to enter office
@ -1367,7 +1367,7 @@ u8 func0411_cass_in_office[] = {
u8 func0413_cass_running[] = {
chr_toggle_modelpart(CHR_CASS, MODELPART_NECKLACE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
set_shotlist(AILIST_CASS_RUNNING)
if_chr_dead(CHR_CASS, /*goto*/ 0x06)
if_chr_death_animation_finished(CHR_CASS, /*goto*/ 0x06)
@ -2022,7 +2022,7 @@ u8 func0417_outro[] = {
set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000)
set_chr_chrflag(CHR_BOND, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_CASS, CHRCFLAG_HIDDEN)
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_chr_chrflag(CHR_CASS, CHRCFLAG_INVINCIBLE)
show_object(OBJ_SHUTTLE2)
set_object_flag2(OBJ_SHUTTLE2, OBJFLAG2_04000000)
set_object_flag3(OBJ_SHUTTLE2, OBJFLAG3_00000010)

View File

@ -656,7 +656,7 @@ bool eyespyTryLaunch(void)
launched = true;
chr->chrflags &= ~CHRCFLAG_HIDDEN;
chr->chrflags &= ~CHRCFLAG_INVINCIBLE_TO_GUNFIRE;
chr->chrflags &= ~CHRCFLAG_INVINCIBLE;
#if VERSION >= VERSION_NTSC_1_0
func0f0939f8(NULL, g_Vars.currentplayer->eyespy->prop, SFX_EYESPY_RUNNING, -1,

View File

@ -930,7 +930,7 @@ glabel bwalkCalculateNewPositionWithPush
/* f0c436c: 27a60090 */ addiu $a2,$sp,0x90
/* f0c4370: 00003825 */ or $a3,$zero,$zero
/* f0c4374: 8c440004 */ lw $a0,0x4($v0)
/* f0c4378: 0fc0d05f */ jal func0f03417c
/* f0c4378: 0fc0d05f */ jal chrDamageByLaser
/* f0c437c: afa20010 */ sw $v0,0x10($sp)
/* f0c4380: 3c01bf80 */ lui $at,0xbf80
/* f0c4384: 44814000 */ mtc1 $at,$f8
@ -1273,7 +1273,7 @@ glabel bwalkCalculateNewPositionWithPush
/* f0c436c: 27a60090 */ addiu $a2,$sp,0x90
/* f0c4370: 00003825 */ or $a3,$zero,$zero
/* f0c4374: 8c440004 */ lw $a0,0x4($v0)
/* f0c4378: 0fc0d05f */ jal func0f03417c
/* f0c4378: 0fc0d05f */ jal chrDamageByLaser
/* f0c437c: afa20010 */ sw $v0,0x10($sp)
/* f0c4380: 3c01bf80 */ lui $at,0xbf80
/* f0c4384: 44814000 */ mtc1 $at,$f8
@ -1567,7 +1567,7 @@ glabel bwalkCalculateNewPositionWithPush
// sp90.z = 1;
// }
//
// func0f03417c(g_Vars.currentplayer->prop->chr, 0.4f, &sp90, 0, g_Vars.currentplayer->prop);
// chrDamageByLaser(g_Vars.currentplayer->prop->chr, 0.4f, &sp90, 0, g_Vars.currentplayer->prop);
//
// // Laser zap sound
// sndStart(var80095200, SFX_PICKUP_LASER, 0, -1, -1, -1, -1, -1);
@ -1591,7 +1591,7 @@ glabel bwalkCalculateNewPositionWithPush
// } else if (chr->chrflags & CHRCFLAG_PUSHABLE) {
// if (g_Vars.antiplayernum < 0
// || g_Vars.currentplayer != g_Vars.anti
// || (chr->hidden & CHRHFLAG_ANTICANNOTPUSH) == 0) {
// || (chr->hidden & CHRHFLAG_ANTINONINTERACTABLE) == 0) {
// canpush = true;
// }
// }
@ -2133,7 +2133,7 @@ void bwalkUpdateVertical(void)
if (prop->type == PROPTYPE_CHR) {
// Landed on top of a chr
if (prop->chr->inlift) {
func0f03323c(prop->chr, &g_Vars.currentplayer->prop->pos, 0);
chrYeetFromPos(prop->chr, &g_Vars.currentplayer->prop->pos, 0);
}
} else if (prop->type == PROPTYPE_PLAYER) {
// Landed on top of a player

View File

@ -5702,7 +5702,7 @@ void chrInit(struct prop *prop, u8 *ailist)
chr->propsoundcount = 0;
chr->patrolnextstep = -1;
chr->p1p2 = g_Vars.bondplayernum;
chr->unk350 = 0;
chr->lastattacker = NULL;
chr->race = RACE_HUMAN;
chr->aimtesttimer60 = random() % PALDOWN(30);
chr->lastfootsample = 0;
@ -5938,7 +5938,7 @@ void chrUpdateAimProperties(struct chrdata *chr)
}
}
void func0f02133c(struct chrdata *chr)
void chrFlinchBody(struct chrdata *chr)
{
if (chr->actiontype != ACT_DEAD && chr->flinchcnt < 0) {
chr->flinchcnt = 1;
@ -5947,7 +5947,7 @@ void func0f02133c(struct chrdata *chr)
}
}
void chrDoFlinchcntThing(struct chrdata *chr, f32 arg1)
void chrFlinchHead(struct chrdata *chr, f32 arg1)
{
s32 value;
@ -8081,9 +8081,7 @@ void chrTickPoisoned(struct chrdata *chr)
if (chr->poisoncounter > 0) {
struct coord coord = {0, 0, 0};
struct shorthand hand = {
WEAPON_COMBATKNIFE, 0, 0, 3,
};
struct shorthand hand = { WEAPON_COMBATKNIFE, 0, 0, FUNC_POISON };
if (chr->actiontype == ACT_DEAD || chr->actiontype == ACT_DIE) {
// Dying chr
@ -8100,7 +8098,7 @@ void chrTickPoisoned(struct chrdata *chr)
}
} else if (chr->prop->type == PROPTYPE_PLAYER
&& g_Vars.players[propGetPlayerNum(chr->prop)]->bondhealth < 0.001f) {
// Alive player chr
// Player who's alive but on almost zero health
if (g_Vars.normmplayerisrunning) {
if (chr->poisoncounter > PALDOWN(3600)) {
chr->poisoncounter = PALDOWN(3600);
@ -8111,13 +8109,13 @@ void chrTickPoisoned(struct chrdata *chr)
}
}
} else {
// Alive non-player chr
// Alive chr
chr->poisoncounter -= g_Vars.lvupdate240;
if (chr->poisoncounter <= 0) {
if (!g_Vars.normmplayerisrunning) {
chrPoison(chr, 100, &coord, &hand, chr->poisonprop);
chrDoFlinchcntThing(chr, M_PI);
chrDamageByMisc(chr, 100, &coord, &hand, chr->poisonprop);
chrFlinchHead(chr, M_PI);
}
chr->poisoncounter = 0;
@ -8127,7 +8125,7 @@ void chrTickPoisoned(struct chrdata *chr)
if (g_Vars.normmplayerisrunning) {
if (chr->poisoncounter / PALDOWN(720) != (chr->poisoncounter + g_Vars.lvupdate240) / PALDOWN(720)) {
chrPoison(chr, 1.3f, &coord, &hand, chr->poisonprop);
chrDamageByMisc(chr, 1.3f, &coord, &hand, chr->poisonprop);
}
}
}
@ -9453,7 +9451,7 @@ glabel var7f1a99ecpf
/* f0243e0: 8de10008 */ lw $at,0x8($t7)
/* f0243e4: ad380004 */ sw $t8,0x4($t1)
/* f0243e8: ad210008 */ sw $at,0x8($t1)
/* f0243ec: 0fc22f08 */ jal func0f08bcf4
/* f0243ec: 0fc22f08 */ jal hatGetType
/* f0243f0: 8e040178 */ lw $a0,0x178($s0)
/* f0243f4: afa20058 */ sw $v0,0x58($sp)
/* f0243f8: 82060006 */ lb $a2,0x6($s0)
@ -10891,7 +10889,7 @@ glabel var7f1a87d8
/* f0242bc: 8f210008 */ lw $at,0x8($t9)
/* f0242c0: ad680004 */ sw $t0,0x4($t3)
/* f0242c4: ad610008 */ sw $at,0x8($t3)
/* f0242c8: 0fc22f3d */ jal func0f08bcf4
/* f0242c8: 0fc22f3d */ jal hatGetType
/* f0242cc: 8e040178 */ lw $a0,0x178($s0)
/* f0242d0: afa20058 */ sw $v0,0x58($sp)
/* f0242d4: 82060006 */ lb $a2,0x6($s0)
@ -12270,7 +12268,7 @@ glabel var7f1a87d8
/* f023cd4: 8f010008 */ lw $at,0x8($t8)
/* f023cd8: ad2c0004 */ sw $t4,0x4($t1)
/* f023cdc: ad210008 */ sw $at,0x8($t1)
/* f023ce0: 0fc22947 */ jal func0f08bcf4
/* f023ce0: 0fc22947 */ jal hatGetType
/* f023ce4: 8e040178 */ lw $a0,0x178($s0)
/* f023ce8: afa20058 */ sw $v0,0x58($sp)
/* f023cec: 82060006 */ lb $a2,0x6($s0)

File diff suppressed because it is too large Load Diff

View File

@ -36,7 +36,7 @@ bool (*g_CommandPointers[])(void) = {
/*0x0017*/ aiTryModifyAttack,
/*0x0018*/ aiFaceEntity,
/*0x0019*/ ai0019,
/*0x001a*/ ai001a,
/*0x001a*/ aiChrDamageChr,
/*0x001b*/ aiConsiderGrenadeThrow,
/*0x001c*/ aiDropItem,
/*0x001d*/ aiJogToPad,
@ -376,7 +376,7 @@ bool (*g_CommandPointers[])(void) = {
/*0x016b*/ ai016b,
/*0x016c*/ aiNoOp016c,
/*0x016d*/ aiChrAdjustMotionBlur,
/*0x016e*/ aiPoisonChr,
/*0x016e*/ aiDamageChrByAmount,
/*0x016f*/ aiIfChrHasGun,
/*0x0170*/ aiDoGunCommand,
/*0x0171*/ aiIfDistanceToGunLessThan,

View File

@ -824,20 +824,20 @@ bool ai0019(void)
/**
* @cmd 001a
*/
bool ai001a(void)
bool aiChrDamageChr(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct chrdata *chr1 = chrFindById(g_Vars.chrdata, cmd[2]);
struct chrdata *chr2 = chrFindById(g_Vars.chrdata, cmd[3]);
if (chr1 && chr2 && chr1->prop && chr2->prop) {
struct prop *prop = chrGetEquippedWeaponPropWithCheck(chr1, 0);
struct prop *prop = chrGetEquippedWeaponPropWithCheck(chr1, HAND_RIGHT);
f32 damage;
struct coord vector = {0, 0, 0};
struct weaponobj *weapon;
if (!prop) {
prop = chrGetEquippedWeaponPropWithCheck(chr1, 1);
prop = chrGetEquippedWeaponPropWithCheck(chr1, HAND_LEFT);
}
if (prop) {
@ -7053,11 +7053,11 @@ bool aiDetectEnemyOnSameFloor(void)
&& chrCompareTeams(g_Vars.chrdata, chr, COMPARE_ENEMIES)
&& (chr->hidden & CHRHFLAG_CLOAKED) == 0
&& (chr->chrflags & CHRCFLAG_HIDDEN) == 0
&& (chr->hidden & CHRHFLAG_ANTICANNOTPUSH) == 0
&& (chr->hidden & CHRHFLAG_ANTINONINTERACTABLE) == 0
&& y - chr->prop->pos.y > -200
&& y - chr->prop->pos.y < 200
&& ((g_Vars.chrdata->hidden & CHRHFLAG_PSYCHOSISED) == 0
|| (chr->hidden & CHRHFLAG_ANTICANNOTPUSH) == 0
|| (chr->hidden & CHRHFLAG_ANTINONINTERACTABLE) == 0
|| chr->hidden & CHRHFLAG_08000000)
&& g_Vars.chrdata->chrnum != chr->chrnum) {
distance = chrGetDistanceToChr(g_Vars.chrdata, chr->chrnum);
@ -7140,7 +7140,7 @@ bool aiDetectEnemy(void)
&& chr->team != TEAM_NONCOMBAT
&& (
(g_Vars.chrdata->hidden & CHRHFLAG_PSYCHOSISED) == 0
|| (chr->hidden & CHRHFLAG_ANTICANNOTPUSH) == 0
|| (chr->hidden & CHRHFLAG_ANTINONINTERACTABLE) == 0
|| chr->hidden & CHRHFLAG_08000000)) {
f32 distance = chrGetDistanceToChr(g_Vars.chrdata, chr->chrnum);
@ -10610,8 +10610,8 @@ bool aiIfChrInjured(void)
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct chrdata *chr = chrFindById(g_Vars.chrdata, cmd[2]);
if (chr && (chr->chrflags & CHRCFLAG_INJURED)) {
chr->chrflags &= ~CHRCFLAG_INJURED;
if (chr && (chr->chrflags & CHRCFLAG_INJUREDTARGET)) {
chr->chrflags &= ~CHRCFLAG_INJUREDTARGET;
g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]);
} else {
g_Vars.aioffset += 4;
@ -10731,7 +10731,7 @@ bool aiChrAdjustMotionBlur(void)
/**
* @cmd 016e
*/
bool aiPoisonChr(void)
bool aiDamageChrByAmount(void)
{
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
struct coord coord = {0, 0, 0};
@ -10739,12 +10739,12 @@ bool aiPoisonChr(void)
if (chr && chr->prop) {
if (cmd[4] == 2) {
struct shorthand hand = {WEAPON_COMBATKNIFE, 0, 0, 3};
chrPoison(chr, (s32)cmd[3] * 0.03125f, &coord, &hand, NULL);
struct shorthand hand = {WEAPON_COMBATKNIFE, 0, 0, FUNC_POISON};
chrDamageByMisc(chr, (s32)cmd[3] * 0.03125f, &coord, &hand, NULL);
} else if (cmd[4] == 0) {
chrPoison(chr, (s32)cmd[3] * 0.03125f, &coord, NULL, NULL);
chrDamageByMisc(chr, (s32)cmd[3] * 0.03125f, &coord, NULL, NULL);
} else {
chrPoison(chr, (s32)cmd[3] * -0.03125f, &coord, NULL, NULL);
chrDamageByMisc(chr, (s32)cmd[3] * -0.03125f, &coord, NULL, NULL);
}
}

View File

@ -1016,7 +1016,7 @@ u8 func0007_alerted[] = {
set_self_flag_bankx(CHRFLAG0_00200000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_00002000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_00004000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
set_self_flag_bankx(CHRFLAG1_00000002, BANK_1)
goto_next(0x1b)
@ -1053,7 +1053,7 @@ u8 func0007_alerted[] = {
label(0x16)
if_self_flag_bankx_eq(CHRFLAG1_CAN_DRAW_PISTOL, TRUE, BANK_1, /*goto*/ 0x13)
unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
label(0x13)
unset_self_flag_bankx(CHRFLAG1_CAN_DRAW_PISTOL, BANK_1)
label(0x16)
@ -1321,7 +1321,7 @@ u8 func0007_alerted[] = {
// SNIPE
//
label(LABEL_SNIPE)
unset_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
unset_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
yield
if_distance_to_target_lt(1000, /*goto*/ 0x16)
if_distance_to_target_gt(2500, /*goto*/ 0x14)
@ -1378,7 +1378,7 @@ u8 func0007_alerted[] = {
label(0x13)
if_can_see_attack_target(/*goto*/ 0x13)
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
stop_chr
goto_first(0x1b)
@ -1402,7 +1402,7 @@ u8 func0007_alerted[] = {
label(0x16)
stop_chr
unset_self_flag_bankx(CHRFLAG1_CAN_SNIPE, BANK_1)
set_self_flag_bankx(CHRFLAG0_80000000, BANK_0)
set_self_flag_bankx(CHRFLAG0_CANLOSEGUN, BANK_0)
restart_timer
beginloop(0xbd)
@ -3258,7 +3258,7 @@ u8 func000c_combat_with_target_chr[] = {
dprint 'B','O','N','N','D',' ','3','\n',0,
if_self_flag_bankx_eq(CHRFLAG1_00000800, FALSE, BANK_1, /*goto*/ 0x13)
if_target_is_player(/*goto*/ 0x13)
damage_chr(CHR_TARGET, 18)
damage_chr(CHR_TARGET, WEAPON_SUPERDRAGON)
unset_self_flag_bankx(CHRFLAG1_00000800, BANK_1)
label(0x13)
if_chr_dead(CHR_TARGET, /*goto*/ 0xc5)
@ -4991,7 +4991,7 @@ u8 func0015_aibuddy_stealth[] = {
// Hide chr
label(0x16)
remove_references_to_chr
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag((CHRCFLAG_HIDDEN | CHRCFLAG_00010000 | CHRCFLAG_00040000))
// Wait 3 seconds
@ -5046,7 +5046,7 @@ u8 func0015_aibuddy_stealth[] = {
label(0x17)
unset_self_chrflag(0x00050400)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
unset_chr_hiddenflag(CHR_SELF, 0x00100200)
set_chr_cloaked(CHR_SELF, FALSE, TRUE)
set_returnlist(CHR_SELF, GAILIST_COOP_BUDDY)
@ -5270,14 +5270,14 @@ u8 func0027_psychosised[] = {
};
u8 func002d_invincible_and_idle[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_UNEXPLODABLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
endlist
};
u8 func0020_place_coop_buddy[] = {
set_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
set_self_chrflag(CHRCFLAG_INVINCIBLE)
set_self_chrflag(CHRCFLAG_00040000)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_CLOAKED)
stop_chr
@ -5330,7 +5330,7 @@ u8 func0020_place_coop_buddy[] = {
// Move to pad worked
label(0x13)
unset_self_chrflag(CHRCFLAG_HIDDEN)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
stop_chr
set_chr_cloaked(CHR_SELF, FALSE, TRUE)
set_chr_hiddenflag(CHR_SELF, CHRHFLAG_UNTARGETABLE)
@ -5382,7 +5382,7 @@ u8 func0020_place_coop_buddy[] = {
// Unhide
label(0x16)
unset_self_chrflag(CHRCFLAG_HIDDEN)
unset_self_chrflag(CHRCFLAG_INVINCIBLE_TO_GUNFIRE)
unset_self_chrflag(CHRCFLAG_INVINCIBLE)
stop_chr
set_chr_cloaked(CHR_SELF, FALSE, TRUE)
set_returnlist(CHR_SELF, GAILIST_COOP_BUDDY)

View File

@ -202,7 +202,7 @@ char *soloMenuTextNumLimbShots(struct menuitem *item)
char *soloMenuTextNumOtherShots(struct menuitem *item)
{
u32 total = mpstatsGetPlayerShotCountByRegion(SHOTREGION_GUN) + mpstatsGetPlayerShotCountByRegion(SHOTREGION_5);
u32 total = mpstatsGetPlayerShotCountByRegion(SHOTREGION_GUN) + mpstatsGetPlayerShotCountByRegion(SHOTREGION_HAT);
sprintf(g_StringPointer, "%d", total);
return g_StringPointer;
}
@ -214,12 +214,12 @@ char *soloMenuTextAccuracy(struct menuitem *item)
s32 numbody = mpstatsGetPlayerShotCountByRegion(SHOTREGION_BODY);
s32 numlimb = mpstatsGetPlayerShotCountByRegion(SHOTREGION_LIMB);
s32 numgun = mpstatsGetPlayerShotCountByRegion(SHOTREGION_GUN);
s32 num5 = mpstatsGetPlayerShotCountByRegion(SHOTREGION_5);
s32 numhat = mpstatsGetPlayerShotCountByRegion(SHOTREGION_HAT);
s32 numobject = mpstatsGetPlayerShotCountByRegion(SHOTREGION_OBJECT);
f32 accuracy;
if (total > 0) {
s32 hits = numhead + numbody + numlimb + numgun + num5 + numobject;
s32 hits = numhead + numbody + numlimb + numgun + numhat + numobject;
accuracy = hits * 100.0f / total;
} else {
accuracy = 0;

View File

@ -32,7 +32,7 @@ s32 g_MaxExplosions;
u32 var8007e4a0 = 0x00000000;
u32 var8007e4a4 = 0x00000000;
f32 var8007e4a8 = 1;
f32 g_ExplosionDamageReceivedScale = 1;
u32 var8007e4ac = 0x0000004b;
u32 var8007e4b0 = 0x000001e0;
u32 var8007e4b4 = 0x000000a8;
@ -2121,7 +2121,7 @@ glabel var7f1b68a0pf
/* f12c650: 02402025 */ move $a0,$s2
/* f12c654: 27a600a0 */ addiu $a2,$sp,0xa0
/* f12c658: 02203825 */ move $a3,$s1
/* f12c65c: 0fc0d15e */ jal func0f034410
/* f12c65c: 0fc0d15e */ jal chrDamageByExplosion
/* f12c660: afb30010 */ sw $s3,0x10($sp)
/* f12c664: 920e0000 */ lbu $t6,0x0($s0)
/* f12c668: 8fb80194 */ lw $t8,0x194($sp)
@ -2889,7 +2889,7 @@ glabel var7f1b559c
/* f12bb4c: 02402025 */ or $a0,$s2,$zero
/* f12bb50: 27a600a0 */ addiu $a2,$sp,0xa0
/* f12bb54: 02203825 */ or $a3,$s1,$zero
/* f12bb58: 0fc0d104 */ jal func0f034410
/* f12bb58: 0fc0d104 */ jal chrDamageByExplosion
/* f12bb5c: afb30010 */ sw $s3,0x10($sp)
/* f12bb60: 920e0000 */ lbu $t6,0x0($s0)
/* f12bb64: 8fb80194 */ lw $t8,0x194($sp)
@ -3654,7 +3654,7 @@ glabel var7f1b559c
/* f1266dc: 02402025 */ or $a0,$s2,$zero
/* f1266e0: 27a600a0 */ addiu $a2,$sp,0xa0
/* f1266e4: 02203825 */ or $a3,$s1,$zero
/* f1266e8: 0fc0cf46 */ jal func0f034410
/* f1266e8: 0fc0cf46 */ jal chrDamageByExplosion
/* f1266ec: afb30010 */ sw $s3,0x10($sp)
/* f1266f0: 920e0000 */ lbu $t6,0x0($s0)
/* f1266f4: 8fb80194 */ lw $t8,0x194($sp)

View File

@ -12,7 +12,7 @@ void explosionsInit(void)
var8007e4a0 = 0;
var8007e4a4 = 0;
var8007e4a8 = 1;
g_ExplosionDamageReceivedScale = 1;
g_MaxExplosions = 6;

View File

@ -370,8 +370,8 @@ void resetSomeStageThings(void)
g_StageFlags = 0;
var80062ca0 = 1;
var80062ca4 = 1;
var80062ca8 = 1;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
var80062cac = 1;
var80062cbc = 0;

View File

@ -227,9 +227,9 @@ void aibotAllocate(s32 chrnum, s32 aibotnum)
aibot->unk0b4 = 0.0f;
aibot->unk0b8 = 0.0f;
aibot->unk108 = 0.0f;
aibot->unk10c = 0.0f;
aibot->unk110 = 0.0f;
aibot->shotspeed.x = 0.0f;
aibot->shotspeed.y = 0.0f;
aibot->shotspeed.z = 0.0f;
aibot->unk118 = 0;
aibot->unk11c = 0;
aibot->unk120 = -1;

View File

@ -10,12 +10,12 @@
#include "data.h"
#include "types.h"
f32 pdmodeGetReaction(void)
f32 pdmodeGetEnemyReactionSpeed(void)
{
return 0;
}
f32 pdmodeGetHealth(void)
f32 pdmodeGetEnemyHealth(void)
{
if (g_MissionConfig.pdmode) {
return g_MissionConfig.pdmodehealthf;
@ -24,7 +24,7 @@ f32 pdmodeGetHealth(void)
return 1;
}
f32 pdmodeGetDamage(void)
f32 pdmodeGetEnemyDamage(void)
{
if (g_MissionConfig.pdmode) {
return g_MissionConfig.pdmodedamagef;
@ -33,7 +33,7 @@ f32 pdmodeGetDamage(void)
return 1;
}
f32 pdmodeGetAccuracy(void)
f32 pdmodeGetEnemyAccuracy(void)
{
if (g_MissionConfig.pdmode) {
return g_MissionConfig.pdmodeaccuracyf;

View File

@ -17211,7 +17211,7 @@ bool weaponIsMissionCritical(s32 weaponnum)
}
#endif
void currentPlayerLoseGunInNbombStorm(struct prop *prop)
void currentPlayerLoseGun(struct prop *attackerprop)
{
struct player *player = g_Vars.currentplayer;
s32 weaponnum = player->hands[0].base.weaponnum;
@ -17226,7 +17226,7 @@ void currentPlayerLoseGunInNbombStorm(struct prop *prop)
// because AI lists can fail the mission if the player has zero
// quantity.
if (g_Vars.coopplayernum >= 0
&& (prop == g_Vars.bond->prop || prop == g_Vars.coop->prop)
&& (attackerprop == g_Vars.bond->prop || attackerprop == g_Vars.coop->prop)
&& weaponIsMissionCritical(weaponnum)) {
return;
}
@ -17278,7 +17278,7 @@ void currentPlayerLoseGunInNbombStorm(struct prop *prop)
if (obj->hidden & OBJHFLAG_AIRBORNE) {
obj->projectile->unk0b4 = PALDOWN(240);
obj->projectile->unk108 = prop;
obj->projectile->unk108 = attackerprop;
}
func0f08307c(prop2, true);

View File

@ -5144,7 +5144,11 @@ void currentPlayerTickChrFade(void)
}
}
void func0f0bb69c(void)
/**
* Make the health bar appear. If called while the health bar is already open,
* the damage displayed will be updated and the show timer will be reset.
*/
void currentPlayerShowHealthBar(void)
{
switch (g_Vars.currentplayer->healthshowmode) {
case HEALTHSHOWMODE_HIDDEN:
@ -5669,7 +5673,7 @@ glabel var7f1ad674
/* f0bbf10: 00000000 */ nop
);
void func0f0bbf14(void)
void currentPlayerUpdateHealthShow(void)
{
if (g_Vars.currentplayer->damageshowtime >= var80070844[g_Vars.currentplayer->healthdamagetype].showtime) {
g_Vars.currentplayer->damageshowtime = var80070844[g_Vars.currentplayer->healthdamagetype].showtime;
@ -13741,7 +13745,7 @@ glabel var7f1ad6ac
// eyespy->active = false;
// func0f0926bc(eyespy->prop, 1, 0xffff);
// chr->chrflags |= CHRCFLAG_HIDDEN;
// chr->chrflags |= CHRCFLAG_INVINCIBLE_TO_GUNFIRE;
// chr->chrflags |= CHRCFLAG_INVINCIBLE;
// g_Vars.currentplayer->devicesactive &= ~DEVICE_EYESPY;
// } else {
// // dd7c
@ -15903,7 +15907,7 @@ Gfx *func0f0c07c8(Gfx *gdl)
if (totalhealth > 0.125f
&& !(mainGetStageNum() == STAGE_DEEPSEA && chrHasStageFlag(NULL, 0x00000200))) {
if (canrestart) {
func0f0bb69c();
currentPlayerShowHealthBar();
stealhealth = totalhealth * 0.5f;
@ -15933,7 +15937,7 @@ Gfx *func0f0c07c8(Gfx *gdl)
}
#else
if (totalhealth > 0.125f && canrestart) {
func0f0bb69c();
currentPlayerShowHealthBar();
stealhealth = totalhealth * 0.5f;

View File

@ -16589,7 +16589,7 @@ glabel var7f1b29f8
/* f0f85bc: 00000000 */ nop
/* f0f85c0: 50400004 */ beqzl $v0,.L0f0f85d4
/* f0f85c4: 8fbf0014 */ lw $ra,0x14($sp)
/* f0f85c8: 0fc2eda7 */ jal func0f0bb69c
/* f0f85c8: 0fc2eda7 */ jal currentPlayerShowHealthBar
/* f0f85cc: 00000000 */ nop
/* f0f85d0: 8fbf0014 */ lw $ra,0x14($sp)
.L0f0f85d4:

View File

@ -834,7 +834,7 @@ f32 func0f1036ac(u8 value, s32 prop)
return value / 255.0f;
}
return func0f187770(value);
return mpHandicapToDamageScale(value);
}
s32 menuhandlerPdModeSetting(s32 operation, struct menuitem *item, union handlerdata *data)

View File

@ -557,7 +557,7 @@ void playerAllocate(s32 index)
g_Vars.players[index]->unk1994 = 0;
g_Vars.players[index]->unk1998 = 0;
g_Vars.players[index]->unk199c = 1;
g_Vars.players[index]->healthscale = 1;
g_Vars.players[index]->armourscale = 1;
g_Vars.players[index]->haschrbody = false;

View File

@ -4204,7 +4204,7 @@ void mpAibotApplyScenarioCommand(struct chrdata *chr, u32 command)
chr->aibot->unk0d8 = 1;
}
void func0f192628(struct chrdata *chr, struct prop *arg1)
void aibotLoseGun(struct chrdata *chr, struct prop *attackerprop)
{
if (chr->aibot->weaponnum >= WEAPON_FALCON2 && chr->aibot->weaponnum != WEAPON_BRIEFCASE2) {
struct prop *prop = NULL;
@ -4236,7 +4236,7 @@ void func0f192628(struct chrdata *chr, struct prop *arg1)
if (obj->hidden & OBJHFLAG_AIRBORNE) {
obj->projectile->unk0b4 = PALDOWN(240);
obj->projectile->unk108 = arg1;
obj->projectile->unk108 = attackerprop;
}
}

View File

@ -274,7 +274,7 @@ bool aibotDoFarsightThing(struct chrdata *chr, u32 arg1, struct coord *arg2, str
}
chrEmitSparks(oppchr, oppprop, sp160, &oppprop->pos, arg2, chr);
func0f0341dc(oppchr, damage, arg2, (struct shorthand *)sp156, chr->prop, 200, oppprop, sp172, sp168, sp164, 0);
func0f0341dc(oppchr, damage, arg2, (struct shorthand *)sp156, chr->prop, IBH_GENERAL, oppprop, sp172, sp168, sp164, 0);
}
}

View File

@ -232,7 +232,7 @@ struct weaponfunc_close invfunc_unarmed_punch = {
-1, // unk07
&invmenupos_00010fd0, // menupos
invanim_punch, // fire animation
FUNCFLAG_MAKEDIZZY | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_LESSDAMAGE | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
FUNCFLAG_MAKEDIZZY | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_BLUNTIMPACT | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
0.5, // damage
60,
0x00000069,
@ -256,7 +256,7 @@ struct weaponfunc_close invfunc_unarmed_disarm = {
-1, // unk07
&invmenupos_00010fd0, // menupos
invanim_punch, // fire animation
FUNCFLAG_MAKEDIZZY | FUNCFLAG_DROPWEAPON | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_LESSDAMAGE | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
FUNCFLAG_MAKEDIZZY | FUNCFLAG_DROPWEAPON | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_BLUNTIMPACT | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
0.3, // damage
60,
0x00000069,
@ -484,7 +484,7 @@ struct weaponfunc_close invfunc_falcon2_pistolwhip = {
-1, // unk07
&invmenupos_00010fd0, // menupos
invanim_falcon2_pistolwhip, // fire animation
FUNCFLAG_MAKEDIZZY | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_LESSDAMAGE | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
FUNCFLAG_MAKEDIZZY | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_BLUNTIMPACT | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
0.9, // damage
60,
0x00000069,
@ -880,7 +880,7 @@ struct weaponfunc_close invfunc_dy357_pistolwhip = {
-1, // unk07
&invmenupos_00010fd0, // menupos
invanim_dy357_pistolwhip, // fire animation
FUNCFLAG_MAKEDIZZY | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_LESSDAMAGE | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
FUNCFLAG_MAKEDIZZY | FUNCFLAG_NOMUZZLEFLASH | FUNCFLAG_BLUNTIMPACT | FUNCFLAG_NOSTUN | FUNCFLAG_00400000,
0.9, // damage
60,
0x00000069,
@ -3822,7 +3822,7 @@ struct weaponfunc_shootsingle invfunc_psychosisgun_shoot = {
0, // unk07
&invmenupos_00010fe4, // menupos
invanim_tranquilizer_equiporshoot, // fire animation
FUNCFLAG_MAKEDIZZY | FUNCFLAG_00200000,
FUNCFLAG_MAKEDIZZY | FUNCFLAG_PSYCHOSIS,
&invmenupos_00011098,
16,
0.5, // damage

View File

@ -6517,9 +6517,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 0.5f;
var80069958 = 2;
var80062ca0 = 0.5f;
var80062ca4 = 0.35f;
var80062ca8 = 4;
var8007e4a8 = 0.25f;
g_DamageReceivedScale = 0.35f;
g_DamageDealtScale = 4;
g_ExplosionDamageReceivedScale = 0.25f;
var80069880 = 1.5f;
g_AmmoMultiplier = 3;
var80062cac = 0.2f;
@ -6530,9 +6530,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 0.5f;
var80069958 = 1.5f;
var80062ca0 = 0.6f;
var80062ca4 = 0.5f;
var80062ca8 = 3;
var8007e4a8 = 0.25f;
g_DamageReceivedScale = 0.5f;
g_DamageDealtScale = 3;
g_ExplosionDamageReceivedScale = 0.25f;
var80069880 = 1.1f;
g_AmmoMultiplier = 2.5f;
var80062cac = 0.5f;
@ -6543,9 +6543,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 0.5f;
var80069958 = 1;
var80062ca0 = 0.7f;
var80062ca4 = 0.65f;
var80062ca8 = 2;
var8007e4a8 = 0.25f;
g_DamageReceivedScale = 0.65f;
g_DamageDealtScale = 2;
g_ExplosionDamageReceivedScale = 0.25f;
var80069880 = 0.75f;
g_AmmoMultiplier = 2;
var80062cac = 1;
@ -6558,9 +6558,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 0.5f;
var80069958 = 2;
var80062ca0 = 0.6f;
var80062ca4 = 0.5f;
var80062ca8 = 2;
var8007e4a8 = 0.25f;
g_DamageReceivedScale = 0.5f;
g_DamageDealtScale = 2;
g_ExplosionDamageReceivedScale = 0.25f;
var80069880 = 1.5f;
g_AmmoMultiplier = 2;
var80062cac = 0.2f;
@ -6571,9 +6571,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 1;
var80069958 = 1;
var80062ca0 = 0.75f;
var80062ca4 = 1;
var80062ca8 = 1;
var8007e4a8 = 1;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1;
var80069880 = g_Jpn ? 1.1f : 0.75f;
g_AmmoMultiplier = 1.5f;
var80062cac = 0.5f;
@ -6584,9 +6584,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 1.5f;
var80069958 = 1;
var80062ca0 = 1.5f;
var80062ca4 = 1.5f;
var80062ca8 = 1;
var8007e4a8 = 1.5f;
g_DamageReceivedScale = 1.5f;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1.5f;
var80069880 = g_Jpn ? 0.75f : 0.2f;
g_AmmoMultiplier = 1;
var80062cac = 1;
@ -6616,9 +6616,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 0.5f * frac;
var80069958 = 2;
var80062ca0 = 0.6f;
var80062ca4 = 0.5f * frac;
var80062ca8 = 2;
var8007e4a8 = 0.25f * frac;
g_DamageReceivedScale = 0.5f * frac;
g_DamageDealtScale = 2;
g_ExplosionDamageReceivedScale = 0.25f * frac;
var80069880 = 1.5f;
g_AmmoMultiplier = 2;
var80062cac = 0.2f;
@ -6629,9 +6629,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 0.75f;
var80069958 = 1;
var80062ca0 = 0.8f;
var80062ca4 = 0.6f;
var80062ca8 = 1;
var8007e4a8 = 0.75f;
g_DamageReceivedScale = 0.6f;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 0.75f;
var80069880 = g_Jpn ? 1.1f : 0.75f;
g_AmmoMultiplier = 1.5f;
var80062cac = 0.5f;
@ -6642,9 +6642,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 1;
var80069958 = 1;
var80062ca0 = 1.175f;
var80062ca4 = 1;
var80062ca8 = 1;
var8007e4a8 = 1;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1;
var80069880 = g_Jpn ? 0.75f : 0.2f;
g_AmmoMultiplier = 1;
var80062cac = 1;
@ -6655,9 +6655,9 @@ void lvUpdateSoloHandicaps(void)
var80069954 = 1;
var80069958 = 1;
var80062ca0 = 1.1f;
var80062ca4 = 1;
var80062ca8 = 1;
var8007e4a8 = 1;
g_DamageReceivedScale = 1;
g_DamageDealtScale = 1;
g_ExplosionDamageReceivedScale = 1;
var80069880 = 1;
g_AmmoMultiplier = 1;
var80062cac = 1;

View File

@ -103,7 +103,7 @@ struct mpweapon g_MpWeapons[0x27] = {
* value 127 will return 1
* value 255 will return 10
*/
f32 func0f187770(u8 value)
f32 mpHandicapToDamageScale(u8 value)
{
f32 tmp;

View File

@ -4486,7 +4486,7 @@ s32 menuhandlerMpHandicapPlayer(s32 operation, struct menuitem *item, union hand
g_MpPlayers[item->param].handicap = (u16)data->slider.value;
break;
case MENUOP_GETSLIDERLABEL:
sprintf(data->slider.label, "%s%s%.00f%%\n", "", "", func0f187770(g_MpPlayers[item->param].handicap) * 100);
sprintf(data->slider.label, "%s%s%.00f%%\n", "", "", mpHandicapToDamageScale(g_MpPlayers[item->param].handicap) * 100);
break;
}

View File

@ -3098,7 +3098,7 @@ glabel var7f1a7f20
/* f009ca0: 46049002 */ mul.s $f0,$f18,$f4
/* f009ca4: afaa0010 */ sw $t2,0x10($sp)
/* f009ca8: 44050000 */ mfc1 $a1,$f0
/* f009cac: 0fc0d049 */ jal chrPoison
/* f009cac: 0fc0d049 */ jal chrDamageByMisc
/* f009cb0: 00000000 */ nop
/* f009cb4: 8e0c0018 */ lw $t4,0x18($s0)
/* f009cb8: 8e0e0014 */ lw $t6,0x14($s0)
@ -3319,7 +3319,7 @@ glabel var7f1a7f20
/* f009ca0: 46049002 */ mul.s $f0,$f18,$f4
/* f009ca4: afaa0010 */ sw $t2,0x10($sp)
/* f009ca8: 44050000 */ mfc1 $a1,$f0
/* f009cac: 0fc0d049 */ jal chrPoison
/* f009cac: 0fc0d049 */ jal chrDamageByMisc
/* f009cb0: 00000000 */ nop
/* f009cb4: 8e0c0018 */ lw $t4,0x18($s0)
/* f009cb8: 8e0e0014 */ lw $t6,0x14($s0)
@ -3544,7 +3544,7 @@ glabel var7f1a7f20
/* f009958: 02002025 */ or $a0,$s0,$zero
/* f00995c: afab0010 */ sw $t3,0x10($sp)
/* f009960: 44050000 */ mfc1 $a1,$f0
/* f009964: 0fc0ce8b */ jal chrPoison
/* f009964: 0fc0ce8b */ jal chrDamageByMisc
/* f009968: 00000000 */ sll $zero,$zero,0x0
/* f00996c: 8e0a0018 */ lw $t2,0x18($s0)
/* f009970: 8e0d0014 */ lw $t5,0x14($s0)
@ -3654,7 +3654,7 @@ glabel var7f1a7f20
// struct coord vector = {0, 0, 0};
// f32 damage = 0.0099999997764826f * g_Vars.lvupdate240freal;
//
// chrPoison(chr, damage, &vector, sp70, nbomb->prop);
// chrDamageByMisc(chr, damage, &vector, sp70, nbomb->prop);
//
// chr->chrflags |= CHRCFLAG_TRIGGERSHOTLIST;
//

View File

@ -2648,7 +2648,7 @@ void handInflictCloseRangeDamage(s32 handnum, struct shorthand *hand, bool arg2)
s32 spa8 = 0;
s32 spa4 = 0;
s32 spa0 = -1;
s32 sp9c = 15;
s32 ibh = IBH_TORSO;
if (!chrIsAvoiding(chr)) {
handCalculateShotSpread(&spb8, &spac, handnum, true);
@ -2657,19 +2657,19 @@ void handInflictCloseRangeDamage(s32 handnum, struct shorthand *hand, bool arg2)
func0f0a7d98(hand, prop, -1);
if (chr->model && chrGetShield(chr) > 0) {
func0f03ff2c(chr, &playerprop->pos, &spac, &spa8, &sp9c, &spa4, &spa0);
func0f03ff2c(chr, &playerprop->pos, &spac, &spa8, &ibh, &spa4, &spa0);
}
if (bmoveGetCrouchPos() == CROUCHPOS_DUCK) {
sp9c = 200;
ibh = IBH_GENERAL;
} else if (bmoveGetCrouchPos() == CROUCHPOS_SQUAT) {
sp9c = 201;
ibh = IBH_GENERALHALF;
} else {
sp9c = 15;
ibh = IBH_TORSO;
}
func0f0341dc(chr, handGetDamage(hand), &spac, hand,
g_Vars.currentplayer->prop, sp9c, chr->prop, spa8, spa4, spa0, 0);
g_Vars.currentplayer->prop, ibh, chr->prop, spa8, spa4, spa0, 0);
}
}
}

View File

@ -69891,7 +69891,7 @@ glabel func0f08bc5c
);
GLOBAL_ASM(
glabel func0f08bcf4
glabel hatGetType
/* f08bcf4: afa40000 */ sw $a0,0x0($sp)
/* f08bcf8: 03e00008 */ jr $ra
/* f08bcfc: 2402ffff */ addiu $v0,$zero,-1
@ -75093,7 +75093,7 @@ glabel var7f1ab19c
/* f0906bc: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
/* f0906c0: 8df800bc */ lw $t8,0xbc($t7)
/* f0906c4: 8f040004 */ lw $a0,0x4($t8)
/* f0906c8: 0fc0d049 */ jal chrPoison
/* f0906c8: 0fc0d049 */ jal chrDamageByMisc
/* f0906cc: afa00010 */ sw $zero,0x10($sp)
.L0f0906d0:
/* f0906d0: 3c028007 */ lui $v0,%hi(var800698fc)
@ -75283,7 +75283,7 @@ glabel var7f1ab19c
/* f0906bc: 8defa244 */ lw $t7,%lo(g_Vars+0x284)($t7)
/* f0906c0: 8df800bc */ lw $t8,0xbc($t7)
/* f0906c4: 8f040004 */ lw $a0,0x4($t8)
/* f0906c8: 0fc0d049 */ jal chrPoison
/* f0906c8: 0fc0d049 */ jal chrDamageByMisc
/* f0906cc: afa00010 */ sw $zero,0x10($sp)
.L0f0906d0:
/* f0906d0: 3c028007 */ lui $v0,%hi(var800698fc)

View File

@ -25,7 +25,7 @@ u32 var8007f8b8 = 0x42480000;
void splatTick(struct prop *prop)
{
struct chrdata *chr = prop->chr;
u32 unk350 = chr->unk350;
struct chrdata *attacker = chr->lastattacker;
s32 race;
if (chr->unk32c_19 || (chr->chrflags & CHRCFLAG_HIDDEN) || chr->bulletstaken == 0) {
@ -58,7 +58,7 @@ void splatTick(struct prop *prop)
if (thudframe != -1.0f && modelGetCurAnimFrame(chr->model) < thudframe) {
osSyncPrintf("SPLAT : Not Dead Enough %s%s%f", "", "", modelGetCurAnimFrame(chr->model));
} else if (chr->tickssincesplat > PALDOWN(30) && chr->deaddropsplatsadded < 6) {
chr->deaddropsplatsadded += func0f148f18(1, 1.1f, prop, NULL, 0, 0, isskedar, 1, PALDOWN(150), unk350, random() & 8);
chr->deaddropsplatsadded += func0f148f18(1, 1.1f, prop, NULL, 0, 0, isskedar, 1, PALDOWN(150), attacker, random() & 8);
}
} else {
u32 value = chr->bulletstaken * chr->tickssincesplat;
@ -76,7 +76,7 @@ void splatTick(struct prop *prop)
}
if (addmore) {
chr->woundedsplatsadded += func0f148f18(1, 0.3f, prop, NULL, 0, 0, isskedar, 2, PALDOWN(80), unk350, 0);
chr->woundedsplatsadded += func0f148f18(1, 0.3f, prop, NULL, 0, 0, isskedar, 2, PALDOWN(80), attacker, 0);
}
}
@ -92,7 +92,7 @@ void splatTick(struct prop *prop)
chr->tickssincesplat += g_Vars.lvupdate240_60;
}
void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, s32 arg6)
void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, struct chrdata *arg6)
{
struct chrdata *chr = prop->chr;
@ -109,7 +109,7 @@ void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, str
}
}
s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10)
s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, struct chrdata *arg9, s32 arg10)
{
s32 i;
s32 j;

View File

@ -2733,7 +2733,7 @@ void frEndSession(bool hidetargets)
}
}
func0f0bb69c();
currentPlayerShowHealthBar();
g_Vars.currentplayer->bondhealth = 1;
}
@ -7684,7 +7684,7 @@ void dtEnd(void)
chrUnsetStageFlag(NULL, ciGetStageFlagByDeviceIndex(dtGetIndexBySlot(g_DtSlot)));
g_Vars.currentplayer->training = false;
chrUnsetStageFlag(NULL, STAGEFLAG_CI_IN_TRAINING);
func0f0bb69c();
currentPlayerShowHealthBar();
g_Vars.currentplayer->bondhealth = 1;
}
@ -8002,7 +8002,7 @@ void htEnd(void)
playersSetPassiveMode(true);
chrUnsetStageFlag(NULL, STAGEFLAG_CI_IN_TRAINING);
func0f0bb69c();
currentPlayerShowHealthBar();
g_Vars.currentplayer->bondhealth = 1;
}

View File

@ -263,22 +263,30 @@
label,
/**
* Damages the chr by the given amount.
* Damages the chr using the given weapon's stats.
*/
#define damage_chr(chr, value) \
#define damage_chr(chr, weapon) \
mkshort(0x0019), \
chr, \
0x08, \
value, \
0x00, \
0x00, \
0x00,
IBH_HEAD, \
weapon, \
0, \
0, \
FUNC_PRIMARY,
#define chr_shoot_chr(chr1, chr2, weapon) \
/**
* Makes achr damage vchr as if achr shot vchr. No actual firing animation is
* done, nor is any bullet beam shown and the chrs don't even need line of sight
* to each other.
*
* The ibh value is the body part the victim is shot in.
* It's expected to be an IBH constant.
*/
#define chr_damage_chr(achr, vchr, ibh) \
mkshort(0x001a), \
chr1, \
chr2, \
weapon,
achr, \
vchr, \
ibh,
/**
* Makes the chr consider throwing a grenade, using their grenade probability
@ -3200,14 +3208,15 @@
bool,
/**
* Poison or unpoison the given chr by the given amount.
* Damage or undamage the given chr by the given amount.
* 1 unit of amount is equal to 1/32 of a damage unit (0.03125).
* For reference, full health for a player is 8 damage units.
*
* If operation is 0, the chr is poisoned, likely without any ongoing effects.
* If operation is 2, the chr is poisoned, likely with the same effects as being
* hit by a combat knife.
* If operation is anything else, the chr is unpoisoned by the given amount.
* If operation is 0, the chr is damaged.
* If operation is 1, the chr is undamaged (ie. given health).
* If operation is 2, the chr is damaged and poisoned.
*/
#define poison_chr(chr, amount, operation) \
#define damage_chr_by_amount(chr, amount, operation) \
mkshort(0x016e), \
chr, \
amount, \
@ -3412,7 +3421,7 @@
* The two values are the lower and upper bounds of a random percentage. For
* example, when using the values 40 and 60 a random percentage will be chosen
* between 40% and 60%. This percentage is then applied to the weapon's clip
* size. When happens with that is not yet known.
* size. What happens with that is not yet known.
*
* Note that this command can fail, but doesn't have a label argument so failure
* cannot be detected.

View File

@ -401,6 +401,10 @@
#define CHECKSUM_PLACEHOLDER 0x99aabbcc
#define CHOKETYPE_NONE 0
#define CHOKETYPE_GURGLE 1
#define CHOKETYPE_GASP 2
#define CHR_P1P2_OPPOSITE 0xf1
#define CHR_P1P2 0xf2
#define CHR_ANY 0xf3 // Only supported by if_chr_activated_object command
@ -446,7 +450,7 @@
#define CHRFLAG0_10000000 0x10000000 // If set, "IM GOING TO POP"
#define CHRFLAG0_CAN_HEARSPAWN 0x20000000
#define CHRFLAG0_NOHEAR 0x40000000 // Globals, Villa
#define CHRFLAG0_80000000 0x80000000 // Globals, Villa, Chicago, CI Training
#define CHRFLAG0_CANLOSEGUN 0x80000000 // Globals, Villa, Chicago, CI Training
// chr->flags2
#define CHRFLAG1_00000001 0x00000001 // Globals, Extraction, Air Base, Deep Sea
@ -483,38 +487,38 @@
#define CHRFLAG1_80000000 0x80000000 // Globals
// chr->hidden
#define CHRHFLAG_00000001 0x00000001 // Set when chr drops weapon
#define CHRHFLAG_IS_HEARING_TARGET 0x00000002 // Not used in scripts
#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_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 // Appears to be misnamed
#define CHRHFLAG_UNTARGETABLE 0x00001000
#define CHRHFLAG_00002000 0x00002000 // Globals, Rescue guards once disguised
#define CHRHFLAG_TRIGGER_BUDDY_WARP 0x00004000
#define CHRHFLAG_00008000 0x00008000 // Duel only. Set on each opponent when they start combat.
#define CHRHFLAG_DISGUISE_UNCOVERED 0x00010000
#define CHRHFLAG_00020000 0x00020000 // Used in every stage, on Jo and other chrs. Only ever set, never unset or read.
#define CHRHFLAG_00040000 0x00040000 // Not used in scripts
#define CHRHFLAG_DISGUISED 0x00080000
#define CHRHFLAG_00100000 0x00100000 // Set before warping to pad, never unset or read
#define CHRHFLAG_NEEDANIM 0x00200000
#define CHRHFLAG_00400000 0x00400000 // Set in Chicago, G5, AF1, Defense, Attack Ship, Skedar Ruins, Maian SOS, WAR
#define CHRHFLAG_00800000 0x00800000 // Not used in scripts
#define CHRHFLAG_01000000 0x01000000 // Globals - asked about gun (eg. "where did you get that?")
#define CHRHFLAG_02000000 0x02000000 // Similar to DISGUISED flag, but not sure where set
#define CHRHFLAG_04000000 0x04000000 // Related to disguise and detection
#define CHRHFLAG_08000000 0x08000000 // Globals, Villa and G5
#define CHRHFLAG_10000000 0x10000000 // Related to invincible flag
#define CHRHFLAG_CLOAKED 0x20000000
#define CHRHFLAG_ANTICANNOTPUSH 0x40000000
#define CHRHFLAG_PSYCHOSISED 0x80000000
#define CHRHFLAG_00000001 0x00000001 // Set when chr drops weapon
#define CHRHFLAG_IS_HEARING_TARGET 0x00000002 // Not used in scripts
#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_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 // Appears to be misnamed
#define CHRHFLAG_UNTARGETABLE 0x00001000
#define CHRHFLAG_00002000 0x00002000 // Globals, Rescue guards once disguised
#define CHRHFLAG_TRIGGER_BUDDY_WARP 0x00004000
#define CHRHFLAG_00008000 0x00008000 // Duel only. Set on each opponent when they start combat.
#define CHRHFLAG_DISGUISE_UNCOVERED 0x00010000
#define CHRHFLAG_00020000 0x00020000 // Used in every stage, on Jo and other chrs. Only ever set, never unset or read.
#define CHRHFLAG_00040000 0x00040000 // Not used in scripts
#define CHRHFLAG_DISGUISED 0x00080000
#define CHRHFLAG_00100000 0x00100000 // Set before warping to pad, never unset or read
#define CHRHFLAG_NEEDANIM 0x00200000
#define CHRHFLAG_00400000 0x00400000 // Set in Chicago, G5, AF1, Defense, Attack Ship, Skedar Ruins, Maian SOS, WAR
#define CHRHFLAG_00800000 0x00800000 // Not used in scripts
#define CHRHFLAG_01000000 0x01000000 // Globals - asked about gun (eg. "where did you get that?")
#define CHRHFLAG_02000000 0x02000000 // Similar to DISGUISED flag, but not sure where set
#define CHRHFLAG_04000000 0x04000000 // Related to disguise and detection
#define CHRHFLAG_08000000 0x08000000 // Globals, Villa and G5
#define CHRHFLAG_10000000 0x10000000 // Related to invincible flag
#define CHRHFLAG_CLOAKED 0x20000000
#define CHRHFLAG_ANTINONINTERACTABLE 0x40000000
#define CHRHFLAG_PSYCHOSISED 0x80000000
// chr->hidden2
#define CHRH2FLAG_0001 0x0001
@ -530,7 +534,7 @@
#define CHRCFLAG_CLONEABLE 0x00000002
#define CHRCFLAG_NEAR_MISS 0x00000004
#define CHRCFLAG_NEVER_BEEN_ON_SCREEN 0x00000008
#define CHRCFLAG_INVINCIBLE_TO_GUNFIRE 0x00000010
#define CHRCFLAG_INVINCIBLE 0x00000010
#define CHRCFLAG_00000020 0x00000020 // Chicago, Infiltration, AF1, Ruins, WAR
#define CHRCFLAG_00000040 0x00000040 // Used quite a lot
#define CHRCFLAG_00000080 0x00000080 // Defection programmer, Rescue lab techs, globals when doing idle animation
@ -557,7 +561,7 @@
#define CHRCFLAG_10000000 0x10000000 // Not used in scripts
#define CHRCFLAG_20000000 0x20000000 // Not used in scripts
#define CHRCFLAG_40000000 0x40000000 // Not used in scripts
#define CHRCFLAG_INJURED 0x80000000
#define CHRCFLAG_INJUREDTARGET 0x80000000
#define CIQUIP_GREETING 0
#define CIQUIP_MAIN 1
@ -855,6 +859,8 @@
// Weapon functions
#define FUNC_PRIMARY 0
#define FUNC_SECONDARY 1
#define FUNC_2 2
#define FUNC_POISON 3 // Internal function for delivering knife poison periodically
#define FUNCFLAG_BURST3 0x00000002
#define FUNCFLAG_BURST50 0x00000020 // automatics only
@ -866,13 +872,13 @@
#define FUNCFLAG_BURST2 0x00001000
#define FUNCFLAG_NOMUZZLEFLASH 0x00002000
#define FUNCFLAG_EXPLOSIVESHELLS 0x00004000
#define FUNCFLAG_LESSDAMAGE 0x00008000
#define FUNCFLAG_BLUNTIMPACT 0x00008000
#define FUNCFLAG_NOSTUN 0x00010000
#define FUNCFLAG_BURST5 0x00020000
#define FUNCFLAG_DISCARDWEAPON 0x00040000 // Dragon and Laptop throw
#define FUNCFLAG_THREATDETECTOR 0x00080000
#define FUNCFLAG_AUTOSWITCHUNSELECTABLE 0x00100000
#define FUNCFLAG_00200000 0x00200000 // Psychosis gun only, but doesn't trigger psychosis
#define FUNCFLAG_PSYCHOSIS 0x00200000
#define FUNCFLAG_00400000 0x00400000 // punch, disarm and pistol whip
#define FUNCFLAG_00800000 0x00800000 // mostly throwables but some projectiles too
#define FUNCFLAG_08000000 0x08000000 // rockets
@ -1026,6 +1032,9 @@
#define HANGARBIO_MAIANVESSEL 21
#define HANGARBIO_SKEDARSHUTTLE 22
#define HATTYPE_METAL 3
#define HATTYPE_CLOTH 5
#define HEALTHSHOWMODE_HIDDEN 0 // health bar not visible
#define HEALTHSHOWMODE_OPENING 1 // height expanding
#define HEALTHSHOWMODE_PREVIOUS 2 // full height, showing previous health amount
@ -1055,21 +1064,26 @@
#define HUDMSGTYPE_11 11
// chr->ivebeenhit values
#define IBH_LFOOT 1
#define IBH_LSHIN 2
#define IBH_LTHIGH 3
#define IBH_RFOOT 4
#define IBH_RSHIN 5
#define IBH_RTHIGH 6
#define IBH_PELVIS 7
#define IBH_HEAD 8
#define IBH_LHAND 9
#define IBH_LFOREARM 10
#define IBH_LBICEP 11
#define IBH_RHAND 12
#define IBH_RFOREARM 13
#define IBH_RBICEP 14
#define IBH_TORSO 15
#define IBH_LFOOT 1
#define IBH_LSHIN 2
#define IBH_LTHIGH 3
#define IBH_RFOOT 4
#define IBH_RSHIN 5
#define IBH_RTHIGH 6
#define IBH_PELVIS 7
#define IBH_HEAD 8
#define IBH_LHAND 9
#define IBH_LFOREARM 10
#define IBH_LBICEP 11
#define IBH_RHAND 12
#define IBH_RFOREARM 13
#define IBH_RBICEP 14
#define IBH_TORSO 15
#define IBH_TAIL 16
#define IBH_GUN 100
#define IBH_HAT 110
#define IBH_GENERAL 200
#define IBH_GENERALHALF 201
#define IDLEACTION_STANDING 0x01
#define IDLEACTION_SITTING_TYPING 0x02
@ -2958,7 +2972,7 @@
#define SHOTREGION_BODY 2
#define SHOTREGION_LIMB 3
#define SHOTREGION_GUN 4
#define SHOTREGION_5 5 // hat?
#define SHOTREGION_HAT 5
#define SHOTREGION_OBJECT 6
#define SIGHT_DEFAULT 0

View File

@ -191,8 +191,8 @@ extern s32 var80062c80;
extern s32 g_ActiveMaleHeadsIndex;
extern s32 g_ActiveFemaleHeadsIndex;
extern f32 var80062ca0;
extern f32 var80062ca4;
extern f32 var80062ca8;
extern f32 g_DamageReceivedScale;
extern f32 g_DamageDealtScale;
extern f32 var80062cac;
extern s32 var80062cbc;
extern struct animtablerow g_AnimTableHumanType100_A[];
@ -447,7 +447,7 @@ extern u32 var8007dc00;
extern struct var8007e3d0 var8007e3d0[];
extern u32 var8007e4a0;
extern u32 var8007e4a4;
extern f32 var8007e4a8;
extern f32 g_ExplosionDamageReceivedScale;
extern struct sparktype g_SparkTypes[];
extern s32 g_SparksAreActive;
extern struct weatherdata *g_WeatherData;

View File

@ -15,8 +15,8 @@ s16 getNextUnusedChrnum(void);
struct prop *func0f020b14(struct prop *prop, struct model *model, struct coord *pos, s16 *rooms, f32 arg3, u8 *ailist);
void func0f020d44(struct prop *prop, bool removechr);
void chrUpdateAimProperties(struct chrdata *chr);
void func0f02133c(struct chrdata *chr);
void chrDoFlinchcntThing(struct chrdata *chr, f32 arg1);
void chrFlinchBody(struct chrdata *chr);
void chrFlinchHead(struct chrdata *chr, f32 arg1);
f32 func0f02143c(struct chrdata *chr);
void func0f021fa8(struct chrdata *chr, struct coord *pos, s16 *rooms);
void func0f0220ec(struct chrdata *chr, s32 arg1, s32 arg2);
@ -49,7 +49,7 @@ u32 func0f028a50(void);
u32 func0f028d50(void);
u32 func0f028e18(void);
u32 func0f028e6c(void);
u32 func0f028f7c(void);
void func0f028f7c(struct prop *prop, f32 shield, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6);
void func0f0291d4(struct var80062a8c *thing);
void func0f0292bc(struct prop *prop);
s32 func0f02932c(struct prop *prop, s32 arg1);

View File

@ -51,21 +51,21 @@ void func0f031384(struct chrdata *chr, struct var80065750 **arg1, bool arg2, s32
void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 arg3);
void chrBeginDeath(struct chrdata *chr, struct coord *dir, f32 relangle, s32 tableid, struct shorthand *hand, bool knockout, s32 aplayernum);
u32 func0f032ac4(void);
void func0f032fe4(struct chrdata *chr, struct coord *pos, f32 arg2, f32 arg3, u32 *arg4, u32 arg5);
void func0f03323c(struct chrdata *chr, struct coord *pos, f32 arg2);
u32 func0f033654(void);
void func0f0336a8(struct chrdata *chr, u32 arg1, u32 arg2, u32 arg3);
u32 func0f033728(void);
u32 func0f0338e0(void);
void func0f032fe4(struct chrdata *chr, struct coord *pos, f32 angle, s32 ibh, struct shorthand *hand, s32 playernum);
void chrYeetFromPos(struct chrdata *chr, struct coord *pos, f32 arg2);
s32 handGetBlurAmount(struct shorthand *hand);
void chrKnockOut(struct chrdata *chr, f32 angle, s32 ibh, struct shorthand *hand);
bool func0f033728(struct chrdata *chr, f32 *arg1);
void chrChoke(struct chrdata *chr, s32 choketype);
void chrSetShield(struct chrdata *chr, f32 shield);
u32 func0f034080(void);
void chrPoison(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
void func0f03417c(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
bool func0f034080(struct chrdata *chr, s32 arg1, struct prop *prop, s32 arg3, s32 arg4, s32 arg5);
void chrDamageByMisc(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
void chrDamageByLaser(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop);
void func0f0341dc(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, u32 arg5, struct prop *prop2, s32 arg7, s32 arg8, s32 arg9, u32 arg10);
void func0f034330(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, s32 arg5);
void func0f034410(struct chrdata *chr, f32 damage, struct coord *vector, struct prop *prop, u32 arg4);
void chrDamageByExplosion(struct chrdata *chr, f32 damage, struct coord *vector, struct prop *prop, struct coord *explosionpos);
void playerUpdateDamageStats(struct prop *attacker, struct prop *victim, f32 damage);
void func0f034524(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *prop, u32 arg5, u32 arg6, struct prop *prop2, u32 arg8, u32 arg9, u32 arg10, s32 arg11, u32 arg12, u32 arg13);
void chrDamage(struct chrdata *chr, f32 damage, struct coord *vector, struct shorthand *hand, struct prop *aprop, s32 ibh, bool damageshield, struct prop *prop2, s32 arg8, s32 arg9, s32 arg10, s32 arg11, bool explosion, struct coord *explosionpos);
u32 func0f03645c(void);
bool func0f03654c(struct chrdata *chr, struct coord *pos, s16 *rooms, struct coord *pos2, s16 *rooms2, struct coord *vector, f32 arg6, u32 types);
bool propchrHasClearLineToPos(struct prop *prop, struct coord *dstpos, struct coord *vector);
@ -144,7 +144,7 @@ u32 func0f03f778(void);
u32 func0f03fa10(void);
u32 func0f03fab0(void);
u32 func0f03fde4(void);
void func0f03ff2c(struct chrdata *chr, struct coord *pos, struct coord *vector, s32 *arg3, s32 *arg4, s32 *arg5, s32 *arg6);
void func0f03ff2c(struct chrdata *chr, struct coord *pos, struct coord *vector, s32 *arg3, s32 *ibh, s32 *arg5, s32 *arg6);
void func0f04031c(struct coord *coord, f32 arg1, struct coord *coord2, f32 *arg3);
u32 func0f0404d4(void);
u32 func0f041a74(void);

View File

@ -30,7 +30,7 @@
/*0x0017*/ bool aiTryModifyAttack(void);
/*0x0018*/ bool aiFaceEntity(void);
/*0x0019*/ bool ai0019(void);
/*0x001a*/ bool ai001a(void);
/*0x001a*/ bool aiChrDamageChr(void);
/*0x001b*/ bool aiConsiderGrenadeThrow(void);
/*0x001c*/ bool aiDropItem(void);
/*0x001d*/ bool aiJogToPad(void);
@ -344,7 +344,7 @@
/*0x016b*/ bool ai016b(void);
/*0x016c*/ bool aiNoOp016c(void);
/*0x016d*/ bool aiChrAdjustMotionBlur(void);
/*0x016e*/ bool aiPoisonChr(void);
/*0x016e*/ bool aiDamageChrByAmount(void);
/*0x016f*/ bool aiIfChrHasGun(void);
/*0x0170*/ bool aiDoGunCommand(void);
/*0x0171*/ bool aiIfDistanceToGunLessThan(void);

View File

@ -4,10 +4,10 @@
#include "data.h"
#include "types.h"
f32 pdmodeGetReaction(void);
f32 pdmodeGetHealth(void);
f32 pdmodeGetDamage(void);
f32 pdmodeGetAccuracy(void);
f32 pdmodeGetEnemyReactionSpeed(void);
f32 pdmodeGetEnemyHealth(void);
f32 pdmodeGetEnemyDamage(void);
f32 pdmodeGetEnemyAccuracy(void);
void func0f01b148(u32 arg0);
void titleSetNextStage(s32 stagenum);

View File

@ -113,7 +113,7 @@ void func0f0a24f0(struct coord *arg0, s32 handnum);
u32 func0f0a27c8(void);
void func0f0a29c8(void);
bool weaponIsMissionCritical(s32 weaponnum);
void currentPlayerLoseGunInNbombStorm(struct prop *prop);
void currentPlayerLoseGun(struct prop *attacker);
u32 func0f0a2da8(void);
u32 func0f0a2e94(void);
void playerDetonateRemoteMines(s32 playernum);

View File

@ -35,9 +35,9 @@ Gfx *fadeDraw(Gfx *gdl, u32 r, u32 g, u32 b, f32 frac);
Gfx *currentPlayerDrawFade(Gfx *gdl);
void currentPlayerUpdateColourScreenProperties(void);
void currentPlayerTickChrFade(void);
void func0f0bb69c(void);
void currentPlayerShowHealthBar(void);
void func0f0bb814(void);
void func0f0bbf14(void);
void currentPlayerUpdateHealthShow(void);
Gfx *hudRenderHealthBar(Gfx *gdl);
void currentPlayerSurroundWithExplosions(s32 arg0);
void currentPlayerTickExplode(void);

View File

@ -18,7 +18,7 @@ bool func0f191638(struct chrdata *chr, bool arg1);
bool aibotTick(struct prop *prop);
f32 aibotCalculateMaxSpeed(struct chrdata *chr);
void func0f1921f8(struct chrdata *chr, f32 *arg1, s32 arg2, f32 arg3);
void func0f192628(struct chrdata *chr, struct prop *arg1);
void aibotLoseGun(struct chrdata *chr, struct prop *attacker);
void func0f19277c(struct chrdata *chr, s32 propnum);
bool func0f19294c(struct chrdata *botchr, struct chrdata *otherchr);
bool chrHasGround(struct chrdata *chr);

View File

@ -4,7 +4,7 @@
#include "data.h"
#include "types.h"
f32 func0f187770(u8 value);
f32 mpHandicapToDamageScale(u8 value);
void func0f187838(struct mpchr *mpchr);
void mpStartMatch(void);
void mpInit(void);

View File

@ -294,7 +294,7 @@ struct prop *chrGiveWeapon(struct chrdata *chr, s32 model, s32 weaponnum, u32 fl
u32 func0f08bb3c(void);
void func0f08bb5c(struct prop *prop, bool firing, s32 room);
s32 func0f08bc5c(struct prop *prop);
u32 func0f08bcf4(void);
s32 hatGetType(struct prop *prop);
bool doorIsUnlocked(struct prop *playerprop, struct prop *doorprop);
bool func0f08bdd4(struct doorobj *door, struct coord *pos, f32 arg2, bool isbike);
bool func0f08be80(struct doorobj *door, struct defaultobj *obj, bool isbike);

View File

@ -5,9 +5,9 @@
#include "types.h"
void splatTick(struct prop *prop);
void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, s32 arg6);
s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, s32 arg10);
bool func0f149274(f32 arg0, struct prop *prop, struct splat *arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8);
void func0f148e54(struct prop *prop, struct splat *arg1, struct coord *arg2, struct coord *arg3, s32 arg4, s32 arg5, struct chrdata *arg6);
s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struct coord *arg4, struct coord *arg5, s32 arg6, s32 arg7, s32 arg8, struct chrdata *arg9, s32 arg10);
bool func0f149274(f32 arg0, struct prop *prop, struct splat *arg2, f32 arg3, s32 arg4, s32 arg5, s32 arg6, struct chrdata *arg7, s32 arg8);
void func0f149864(void);
u32 func0f14986c(void);
void chrInitSplats(struct chrdata *chr);

View File

@ -127,6 +127,9 @@
#define debris(scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \
_generic_object(0x0f, scale, model, pad, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19),
#define hat(scale, model, chr, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19) \
_generic_object(0x11, scale, model, chr, props1, props2, u1, u2, u3, u4, u5, u6, u7, u8, u9, u10, u11, u12, u13, u14, u15, u16, u17, u18, u19),
#define lift_door(dooroffset, liftoffset, stopnum) \
0x13, dooroffset, liftoffset, 0, stopnum,

View File

@ -1670,10 +1670,10 @@ enum sfx {
SFX_8076,
SFX_PUNCH_GLASS,
SFX_GLASS_SHATTER,
SFX_8079,
SFX_HATHIT_8079,
SFX_807A,
SFX_807B,
SFX_807C,
SFX_HATHIT_807B,
SFX_HATHIT_807C,
SFX_807D,
SFX_807E,
SFX_807F,

View File

@ -68,7 +68,7 @@ struct playerstats {
/*0x50*/ s32 shortestlife;
/*0x54*/ u32 maxkills;
/*0x58*/ s32 maxsimulkills;
/*0x5c*/ f32 damagescale;
/*0x5c*/ f32 damagescale; // of received damage
/*0x60*/ s32 tokenheldtime;
/*0x64*/ u32 unk64;
/*0x68*/ u32 cloaktime;
@ -799,9 +799,7 @@ struct aibot {
/*0x0fc*/ u32 unk0fc;
/*0x100*/ u32 unk100;
/*0x104*/ u32 unk104;
/*0x108*/ f32 unk108;
/*0x10c*/ f32 unk10c;
/*0x110*/ f32 unk110;
/*0x108*/ struct coord shotspeed; // "boost" when aibot is shot
/*0x114*/ s32 unk114;
/*0x118*/ u32 unk118;
/*0x11c*/ s32 unk11c;
@ -964,12 +962,20 @@ struct act_argh {
/*0x30*/ s32 unk030; // lvframe60 value
};
// The first 4 bytes of the hand struct
struct shorthand {
u8 weaponnum;
u8 unk0639;
u8 unk063a;
u8 weaponfunc; // 0 or 1
};
struct act_preargh {
/*0x2c*/ struct coord pos;
/*0x38*/ f32 unk038;
/*0x3c*/ f32 unk03c;
/*0x40*/ u32 unk040;
/*0x44*/ u32 unk044;
/*0x38*/ f32 angle;
/*0x3c*/ s32 ibh;
/*0x40*/ struct shorthand hand;
/*0x44*/ s32 aplayernum;
};
struct act_attack {
@ -1385,7 +1391,7 @@ struct chrdata {
/*0x33c*/ struct coord lastdroppos;
/*0x348*/ struct fireslotthing *unk348;
/*0x34c*/ struct fireslotthing *unk34c;
/*0x350*/ u32 unk350;
/*0x350*/ struct chrdata *lastattacker;
/*0x354*/ s16 aipunchdodgelist;
/*0x356*/ s16 aishootingatmelist;
/*0x358*/ s16 poisoncounter;
@ -2081,14 +2087,6 @@ struct abmag {
/*0x06*/ u16 alignment;
};
// The first 4 bytes of the hand struct
struct shorthand {
u8 weaponnum;
u8 unk0639;
u8 unk063a;
u8 weaponfunc; // 0 or 1
};
// Weapon data per hand
struct hand {
struct shorthand base;
@ -2809,7 +2807,7 @@ struct player {
/*0x1990*/ u32 unk1990;
/*0x1994*/ u32 unk1994;
/*0x1998*/ u32 unk1998;
/*0x199c*/ f32 unk199c;
/*0x199c*/ f32 healthscale;
/*0x19a0*/ f32 armourscale;
/*0x19a4*/ f32 speedgo;
/*0x19a8*/ s32 sighttimer240;