mirror of
https://github.com/n64decomp/perfect_dark.git
synced 2025-02-17 04:49:37 +00:00
Decompile chrDamage
This commit is contained in:
parent
7fe4b24139
commit
b75e5d9242
1
Makefile
1
Makefile
@ -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 \
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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
@ -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,
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -12,7 +12,7 @@ void explosionsInit(void)
|
||||
|
||||
var8007e4a0 = 0;
|
||||
var8007e4a4 = 0;
|
||||
var8007e4a8 = 1;
|
||||
g_ExplosionDamageReceivedScale = 1;
|
||||
|
||||
g_MaxExplosions = 6;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
//
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user