Improve documentation for CHR_P1P2 features
This commit is contained in:
parent
452d86aec3
commit
9fbd4a8732
|
|
@ -2110,7 +2110,7 @@ u8 func100e_check_ecm_mines[] = {
|
|||
|
||||
u8 func1004_check_lab_lift_located[] = {
|
||||
beginloop(0x52)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LABLIFTDOOR1, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LABLIFTDOOR2, /*goto*/ 0x2c)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c)
|
||||
|
|
@ -2302,7 +2302,7 @@ u8 func1008_doorswitch[] = {
|
|||
|
||||
// PA
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_DOORSWITCH, /*goto*/ 0x2c)
|
||||
label(0x06)
|
||||
endloop(0x04)
|
||||
|
|
@ -2376,7 +2376,7 @@ u8 func100a_alarm_guard[] = {
|
|||
|
||||
u8 func100b_lightswitch[] = {
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_LIGHTSWITCH, /*goto*/ 0x2c)
|
||||
reloop(0x04)
|
||||
|
||||
label(0x2c)
|
||||
|
|
@ -3284,8 +3284,8 @@ u8 func1010_start_hub_humms[] = {
|
|||
|
||||
u8 func1011_check_hubs_activated[] = {
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, OBJ_SECURITYHUB, /*goto*/ 0x08)
|
||||
if_chr_activated_object(CHR_F3, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_SECURITYHUB, /*goto*/ 0x08)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_EXTCOMMSHUB, /*goto*/ 0x0a)
|
||||
reloop(0x04)
|
||||
|
||||
label(0x08)
|
||||
|
|
@ -3557,7 +3557,7 @@ u8 func1019_toggle_guards[] = {
|
|||
hide_chr(0x16)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3685,7 +3685,7 @@ u8 unregistered_function7[] = {
|
|||
|
||||
u8 func101e_lift_door_sounds[] = {
|
||||
beginloop(0xc4)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR1, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR2, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1DOOR3, /*goto*/ 0x2c)
|
||||
|
|
@ -3726,7 +3726,7 @@ u8 func042e_init_surrendering_guard[] = {
|
|||
u8 func042f_surrendering_guard[] = {
|
||||
// Wait for player detection
|
||||
beginloop(0xc4)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2c)
|
||||
if_enemy_distance_lt_and_los(500, /*goto*/ 0x2c)
|
||||
|
|
@ -3774,7 +3774,7 @@ u8 func042f_surrendering_guard[] = {
|
|||
if_chr_distance_gt(300, /*goto*/ 0x06)
|
||||
if_chr_in_view(/*goto*/ 0x28)
|
||||
label(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x58)
|
||||
endloop(0x55)
|
||||
|
|
|
|||
|
|
@ -942,7 +942,7 @@ u8 func0406_general_combat[] = {
|
|||
set_view_distance(100)
|
||||
|
||||
label(0x20)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00)
|
||||
if_target_chr_in_sight(/*goto*/ 0x15)
|
||||
|
|
@ -1027,7 +1027,7 @@ u8 func0406_general_combat[] = {
|
|||
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
|
||||
|
||||
beginloop(0x1c)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
call_rng
|
||||
if_target_chr_in_sight(/*goto*/ 0x19)
|
||||
|
|
@ -1046,7 +1046,7 @@ u8 func0406_general_combat[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x1b)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x19)
|
||||
if_timer_gt(300, /*goto*/ 0x00)
|
||||
|
|
@ -1318,7 +1318,7 @@ u8 func0408_hovercopter[] = {
|
|||
|
||||
u8 func1002_check_accessed_foyer_elevator[] = {
|
||||
beginloop(0x21)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_y(CHR_TARGET, -8155, OPERATOR_LESS_THAN, /*goto*/ 0x20)
|
||||
if_chr_distance_to_pad_lt(CHR_TARGET, 300, 0x021a, /*goto*/ 0x00)
|
||||
|
|
@ -1334,7 +1334,7 @@ u8 func1002_check_accessed_foyer_elevator[] = {
|
|||
|
||||
u8 func1003_check_end_level[] = {
|
||||
beginloop(0x21)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0002, /*goto*/ 0x00)
|
||||
reloop(0x21)
|
||||
|
|
@ -1381,7 +1381,7 @@ u8 func1004_elevator_unlocking[] = {
|
|||
set_function(CHR_SELF, GFUNC_IDLE)
|
||||
|
||||
beginloop(0x1f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, 0x01, /*goto*/ 0x20)
|
||||
if_object_in_good_condition(0x01, /*goto*/ 0x00)
|
||||
|
|
@ -1578,7 +1578,7 @@ u8 func1009_init_top_room[] = {
|
|||
set_chr_flag_bank3(CHR_CASS, CHRFLAG3_INVINCIBLE_TO_GUNFIRE)
|
||||
|
||||
beginloop(0x1f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0039, /*goto*/ 0x00)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_TOPROOMDOOR, /*goto*/ 0x00)
|
||||
endloop(0x1f)
|
||||
|
|
@ -1630,7 +1630,7 @@ u8 func0409_tech_conversation[] = {
|
|||
set_onshot_function(GFUNC_IDLE)
|
||||
|
||||
beginloop(0x01)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, 0x11, /*goto*/ 0x00)
|
||||
if_door_state(0x11, DOORSTATEBIT_OPEN, /*goto*/ 0x00)
|
||||
|
|
@ -1671,7 +1671,7 @@ u8 func0409_tech_conversation[] = {
|
|||
beginloop(0x21)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x33)
|
||||
if_saw_death(0x00, /*goto*/ 0x33)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
|
||||
if_target_chr_in_sight(/*goto*/ 0x33)
|
||||
|
|
@ -1692,7 +1692,7 @@ u8 func0409_tech_conversation[] = {
|
|||
beginloop(0x22)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x33)
|
||||
if_saw_death(0x00, /*goto*/ 0x33)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
|
||||
if_target_chr_in_sight(/*goto*/ 0x33)
|
||||
|
|
@ -1713,7 +1713,7 @@ u8 func0409_tech_conversation[] = {
|
|||
beginloop(0x23)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x33)
|
||||
if_saw_death(0x00, /*goto*/ 0x33)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
|
||||
if_target_chr_in_sight(/*goto*/ 0x33)
|
||||
|
|
@ -1734,7 +1734,7 @@ u8 func0409_tech_conversation[] = {
|
|||
beginloop(0x24)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x33)
|
||||
if_saw_death(0x00, /*goto*/ 0x33)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
|
||||
if_target_chr_in_sight(/*goto*/ 0x33)
|
||||
|
|
@ -1756,7 +1756,7 @@ u8 func0409_tech_conversation[] = {
|
|||
beginloop(0x25)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x33)
|
||||
if_saw_death(0x00, /*goto*/ 0x33)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
|
||||
if_target_chr_in_sight(/*goto*/ 0x33)
|
||||
|
|
@ -1776,7 +1776,7 @@ u8 func0409_tech_conversation[] = {
|
|||
beginloop(0x26)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x33)
|
||||
if_saw_death(0x00, /*goto*/ 0x33)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x33)
|
||||
if_chr_sees_player(/*goto*/ 0x20)
|
||||
|
|
@ -1847,7 +1847,7 @@ u8 func040a_tech2[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x1f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TECHS_FINISHED, TRUE, /*goto*/ 0x20)
|
||||
if_target_chr_in_sight(/*goto*/ 0x33)
|
||||
|
|
@ -1858,7 +1858,7 @@ u8 func040a_tech2[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x21)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x00)
|
||||
reloop(0x21)
|
||||
|
|
@ -2077,7 +2077,7 @@ u8 func040d_cass[] = {
|
|||
|
||||
// And not in sight
|
||||
label(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x20)
|
||||
set_target_chr(CHR_ANTI)
|
||||
|
|
@ -2102,7 +2102,7 @@ u8 func040d_cass[] = {
|
|||
|
||||
u8 func101f_unlock_top_door[] = {
|
||||
beginloop(0x1f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x003b, /*goto*/ 0x20)
|
||||
endloop(0x1f)
|
||||
|
||||
|
|
@ -2123,7 +2123,7 @@ u8 func040e_noop2[] = {
|
|||
|
||||
u8 func100a_lightswitch[] = {
|
||||
beginloop(0x1f)
|
||||
if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x20)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_LIGHTSWITCH, /*goto*/ 0x20)
|
||||
reloop(0x1f)
|
||||
|
||||
label(0x20)
|
||||
|
|
@ -2633,7 +2633,7 @@ u8 func0413_defend_pad[] = {
|
|||
set_onshot_function(FUNC_GENERAL_COMBAT)
|
||||
|
||||
beginloop(0x1f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x21)
|
||||
if_enemy_distance_lt_and_los(2540, /*goto*/ 0x21)
|
||||
|
|
@ -2940,7 +2940,7 @@ u8 func101a_set_rocketlauncher_flag[] = {
|
|||
|
||||
u8 func101b_lift_door_sounds[] = {
|
||||
beginloop(0x8d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x23, /*goto*/ 0x20)
|
||||
if_chr_activated_object(CHR_P1P2, 0x27, /*goto*/ 0x5e)
|
||||
if_chr_activated_object(CHR_P1P2, 0x20, /*goto*/ 0x20)
|
||||
|
|
|
|||
|
|
@ -784,7 +784,7 @@ u8 func0406_init_stripes[] = {
|
|||
|
||||
u8 func1003_msg_therestheescapepod[] = {
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 1000, 0x01d8, /*goto*/ 0x31)
|
||||
endloop(0x06)
|
||||
|
||||
|
|
@ -810,7 +810,7 @@ u8 func1005_msg_thejamming[] = {
|
|||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x0f)
|
||||
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(2, /*goto*/ 0x0f)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x31)
|
||||
endloop(0x06)
|
||||
|
|
@ -824,7 +824,7 @@ u8 func1005_msg_thejamming[] = {
|
|||
|
||||
u8 func1006_msg_elvisbeable[] = {
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 1000, 0x0105, /*goto*/ 0x31)
|
||||
endloop(0x06)
|
||||
|
||||
|
|
@ -1049,7 +1049,7 @@ u8 func0416_spawned_guard[] = {
|
|||
|
||||
u8 func1008_escapepod[] = {
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_ESCAPEPOD, /*goto*/ 0x31)
|
||||
|
||||
// Pod destroyed
|
||||
|
|
@ -1270,7 +1270,7 @@ u8 func0418_robot[] = {
|
|||
|
||||
beginloop(0x04)
|
||||
dprint 'P','A','R','T',' ','1','\n',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0d)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0d)
|
||||
|
|
@ -1324,10 +1324,10 @@ u8 func0418_robot[] = {
|
|||
if_chr_distance_gt(1000, /*goto*/ 0x15)
|
||||
dprint 'P','A','R','T',' ','2','\n',0,
|
||||
if_target_chr_in_sight(/*goto*/ 0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0x15)
|
||||
endloop(0x0a)
|
||||
|
|
@ -1361,7 +1361,7 @@ u8 func0414_spawner[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00000002)
|
||||
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x0a)
|
||||
// Room 0x0029 is the skedar shuttle area
|
||||
|
|
@ -1416,7 +1416,7 @@ u8 func041a_pres_clone[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00080000)
|
||||
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x31)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x08)
|
||||
|
|
@ -1475,7 +1475,7 @@ u8 func041c_president_waiting[] = {
|
|||
|
||||
// Wait until trigger and can see player
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_PRESIDENT_RUNNING, TRUE, /*goto*/ 0x31)
|
||||
goto_first(0x06)
|
||||
|
|
@ -1711,7 +1711,7 @@ u8 func041e_trent_waiting[] = {
|
|||
set_chr_flag_bank2(CHR_SELF, CHRFLAG2_10000000)
|
||||
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x08)
|
||||
endloop(0x06)
|
||||
|
|
@ -1735,7 +1735,7 @@ u8 func041f_trent_shooting[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
try_unset_chr_flag_bank3_02000000(CHR_SELF, /*goto*/ 0x31)
|
||||
if_target_chr_in_sight(/*goto*/ 0x08)
|
||||
|
|
@ -1793,7 +1793,7 @@ u8 func0420_trent_running[] = {
|
|||
endloop(0x0a)
|
||||
|
||||
label(0x31)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x31)
|
||||
goto_next(0x08)
|
||||
|
|
|
|||
|
|
@ -1179,7 +1179,7 @@ u8 func0407_stewardess[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x11)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75)
|
||||
if_chr_distance_gt(200, /*goto*/ 0x75)
|
||||
|
|
@ -1208,7 +1208,7 @@ u8 func0407_stewardess[] = {
|
|||
|
||||
// Walking
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75)
|
||||
if_chr_distance_gt(200, /*goto*/ 0x75)
|
||||
|
|
@ -1281,7 +1281,7 @@ u8 func0407_stewardess[] = {
|
|||
dprint 'W','A','L','K','F','A','I','L','\n',0,
|
||||
|
||||
beginloop(0x49)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75)
|
||||
if_chr_distance_gt(200, /*goto*/ 0x75)
|
||||
|
|
@ -1303,7 +1303,7 @@ u8 func0407_stewardess[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x4b)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75)
|
||||
if_chr_distance_gt(200, /*goto*/ 0x75)
|
||||
|
|
@ -1319,7 +1319,7 @@ u8 func0407_stewardess[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_MSG_NOWSYOURCHANCE, TRUE, /*goto*/ 0x75)
|
||||
if_chr_distance_gt(200, /*goto*/ 0x75)
|
||||
|
|
@ -1510,7 +1510,7 @@ u8 func0408_secretary[] = {
|
|||
// MAIN LOOP
|
||||
//
|
||||
beginloop(LABEL_MAIN_LOOP)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
set_view_distance(100)
|
||||
if_shot_near_chr(0x00, /*goto*/ LABEL_BECOME_ALERT1)
|
||||
|
|
@ -1706,7 +1706,7 @@ u8 func0408_secretary[] = {
|
|||
|
||||
u8 unregistered_function2[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x02)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -1722,7 +1722,7 @@ u8 unregistered_function2[] = {
|
|||
|
||||
u8 func1007_console_activation[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x31)
|
||||
goto_next(0x0c)
|
||||
|
||||
|
|
@ -1768,7 +1768,7 @@ u8 func1007_console_activation[] = {
|
|||
play_x_music(0x58, 88) // @bug? Invalid channel
|
||||
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -2000, OPERATOR_LESS_THAN, /*goto*/ 0x02)
|
||||
endloop(0x06)
|
||||
|
||||
|
|
@ -1943,7 +1943,7 @@ u8 func1021_weapon_scanning_coop[] = {
|
|||
|
||||
u8 func1009_carousel_activation[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_BAGGAGE_CARRIER, /*goto*/ 0x02)
|
||||
if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x31)
|
||||
reloop(0x00)
|
||||
|
|
@ -2063,7 +2063,7 @@ u8 func0409_office1[] = {
|
|||
animation(ANIM_SITTING_DORMANT, 0, -1, 0x14, 0x10, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x02)
|
||||
if_shot_near_chr(0x00, /*goto*/ LABEL_RUN_TO_FOYER)
|
||||
|
|
@ -2213,7 +2213,7 @@ u8 func040a_office2[] = {
|
|||
label(0x02)
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x02)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x02)
|
||||
|
|
@ -2270,7 +2270,7 @@ u8 func040a_office2[] = {
|
|||
|
||||
u8 func100c_check_end_level[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(0, /*goto*/ 0x31)
|
||||
goto_first(0x00)
|
||||
|
||||
|
|
@ -2347,7 +2347,7 @@ u8 func100c_check_end_level[] = {
|
|||
|
||||
u8 func100d_laser_panel[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LASER_PANEL, /*goto*/ 0x04)
|
||||
if_object_in_good_condition(OBJ_LASER_PANEL, /*goto*/ 0x02)
|
||||
goto_next(0x05)
|
||||
|
|
@ -2434,7 +2434,7 @@ u8 func040f_nsa[] = {
|
|||
|
||||
beginloop(0x06)
|
||||
dprint 'G','O',' ','F','O','R',' ','P','A','D','\n',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_distance_lt(250, /*goto*/ 0x64)
|
||||
if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33)
|
||||
|
|
@ -2465,7 +2465,7 @@ u8 func040f_nsa[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
dprint 'W','A','I','T',' ','F','O','R',' ','C','H','R','\n',0,
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x0b)
|
||||
|
|
@ -2614,7 +2614,7 @@ u8 func0411_takeover_lackey[] = {
|
|||
set_function(CHR_SELF, GFUNC_IDLE)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_dying(0x0c, /*goto*/ 0x7b)
|
||||
if_chr_death_animation_finished(0x0c, /*goto*/ 0x7b)
|
||||
|
|
@ -2686,7 +2686,7 @@ u8 func0414_officeworker[] = {
|
|||
animation(ANIM_SITTING_DORMANT, -1, 60, 0x14, 0x00, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x07)
|
||||
if_chr_idle(/*goto*/ 0x02)
|
||||
|
|
@ -2730,7 +2730,7 @@ u8 func0414_officeworker[] = {
|
|||
animation(ANIM_COWER_0229, -1, 60, 0x14, 0x0a, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x02)
|
||||
if_chr_idle(/*goto*/ 0x31)
|
||||
|
|
@ -3144,7 +3144,7 @@ u8 func042a_foyer_spawner[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00040000)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_SECURITY_SHUT_DOWN, TRUE, /*goto*/ 0x02)
|
||||
if_chr_y(CHR_TARGET, -4800, OPERATOR_LESS_THAN, /*goto*/ 0x09)
|
||||
|
|
@ -3369,7 +3369,7 @@ u8 func0419_ba8c[] = {
|
|||
restart_timer
|
||||
label(0x72)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_saw_death(0x00, /*goto*/ 0x4f)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x0f)
|
||||
|
|
@ -3491,7 +3491,7 @@ u8 func1018_safe_switch[] = {
|
|||
|
||||
// Wait for player to activate switch
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_SAFE_SWITCH, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -3508,7 +3508,7 @@ u8 func1018_safe_switch[] = {
|
|||
|
||||
// Wait for player to press button again
|
||||
beginloop(0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_SAFE_SWITCH, /*goto*/ 0x31)
|
||||
endloop(0x06)
|
||||
|
||||
|
|
@ -3555,7 +3555,7 @@ u8 func1018_safe_switch_cover[] = {
|
|||
set_object_flag_bank0(OBJ_SAFE_SWITCH_COVER, OBJECTFLAG0_DEACTIVATED)
|
||||
|
||||
beginloop(0x00)
|
||||
if_chr_activated_object(CHR_F3, OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_SAFE_SWITCH_COVER, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
||||
label(0x31)
|
||||
|
|
@ -3575,7 +3575,7 @@ u8 func1018_safe_switch_cover[] = {
|
|||
|
||||
u8 func101a_check_disguise_used[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -3872,7 +3872,7 @@ u8 func101d_msg_usethatcase[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_BRIEFCASE1, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -3915,7 +3915,7 @@ u8 func101e_msg_casewillgetstopped[] = {
|
|||
|
||||
u8 func101f_msg_smallerthanithought[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0025, /*goto*/ 0x31)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x001c, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
|
@ -3993,7 +3993,7 @@ u8 func0416_watch_flag[] = {
|
|||
|
||||
u8 func101a_check_disguise_used2[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_UNIFORM, /*goto*/ 0x02)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -4139,7 +4139,7 @@ u8 func141b_setup_lifts_and_doors[] = {
|
|||
|
||||
u8 func1029_lift_doors[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x37, /*goto*/ 0x31)
|
||||
if_chr_activated_object(CHR_P1P2, 0x38, /*goto*/ 0x31)
|
||||
if_chr_activated_object(CHR_P1P2, 0x39, /*goto*/ 0x31)
|
||||
|
|
@ -4235,7 +4235,7 @@ u8 func102d_check_console_destroyed[] = {
|
|||
|
||||
u8 func102e_check_base_entered[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x002e, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -4311,7 +4311,7 @@ u8 func1032_unhide_guards_near_plane[] = {
|
|||
// elevator all the way to the bottom, then come out and turn left, you'll
|
||||
// walk through these rooms before reaching the stairs.
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0016, /*goto*/ 0x31)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x31)
|
||||
endloop(0x00)
|
||||
|
|
|
|||
|
|
@ -1011,7 +1011,7 @@ u8 unregistered_function1[] = {
|
|||
u8 func1004_msg_controlledfrom[] = {
|
||||
restart_timer
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0027, /*goto*/ 0x07)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -1023,7 +1023,7 @@ u8 func1004_msg_controlledfrom[] = {
|
|||
|
||||
u8 func1005_msg_withoutautopilot[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x007e, /*goto*/ 0x07)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -1035,7 +1035,7 @@ u8 func1005_msg_withoutautopilot[] = {
|
|||
|
||||
u8 func1006_msg_conductoperations[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x007f, /*goto*/ 0x07)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -1068,7 +1068,7 @@ u8 unregistered_function2[] = {
|
|||
u8 func1009_open_reactor_hatch[] = {
|
||||
// Wait for all switches active
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_HATCHSWITCH1_ACTIVATED, TRUE, /*goto*/ 0x07)
|
||||
reloop(0x00)
|
||||
|
||||
|
|
@ -1095,7 +1095,7 @@ u8 func1009_open_reactor_hatch[] = {
|
|||
|
||||
u8 func100a_reactor_switch[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_REACTOR_SWITCH, /*goto*/ 0x07)
|
||||
message(CHR_BOND, 0x1624) // "Critical mission object has been destroyed."
|
||||
set_stage_flag(STAGEFLAG_REACTOR_SWITCH_DESTROYED)
|
||||
|
|
@ -1126,7 +1126,7 @@ u8 func100a_reactor_switch[] = {
|
|||
|
||||
u8 func100b_check_diving_area_located[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_MET_ELVIS, TRUE, /*goto*/ 0x07)
|
||||
reloop(0x00)
|
||||
|
||||
|
|
@ -1179,7 +1179,7 @@ u8 func100c_check_end_level[] = {
|
|||
set_function(CHR_ELVIS, FUNC_ELVIS_AT_MOONPOOL)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0064, /*goto*/ 0x07)
|
||||
reloop(0x00)
|
||||
|
||||
|
|
@ -1356,7 +1356,7 @@ u8 func040b_labtech1[] = {
|
|||
label(0x04)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x0f)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f)
|
||||
|
|
@ -1431,7 +1431,7 @@ u8 func040c_labtech2[] = {
|
|||
label(0x04)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x0f)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x0f)
|
||||
|
|
@ -1510,7 +1510,7 @@ u8 func040d_labtech3[] = {
|
|||
label(0x04)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x0f)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x10)
|
||||
|
|
@ -1624,7 +1624,7 @@ u8 func0411_labtech_alerted[] = {
|
|||
animation(ANIM_COWER_0229, -1, -1, 0x10, 0x0a, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x11)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_timer_gt(1200, /*goto*/ 0x0d)
|
||||
if_chr_sees_player(/*goto*/ 0x07)
|
||||
|
|
@ -1885,7 +1885,7 @@ u8 func0401_pilot[] = {
|
|||
|
||||
// Alive - wait for player to arrive
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x07)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x04)
|
||||
|
|
@ -1901,7 +1901,7 @@ u8 func0401_pilot[] = {
|
|||
|
||||
beginloop(0x0b)
|
||||
// Wait for Jo nearby
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_distance_lt(200, /*goto*/ 0x07)
|
||||
reloop(0x0b)
|
||||
|
|
@ -2228,7 +2228,7 @@ u8 func0404_angry_pilot[] = {
|
|||
|
||||
u8 func1013_lift_switch[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIFT_SWITCH, /*goto*/ 0x07)
|
||||
endloop(0x00)
|
||||
|
||||
|
|
@ -2245,7 +2245,7 @@ u8 func1013_lift_switch[] = {
|
|||
|
||||
u8 func1014_moonpool_switch[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_MOONPOOL_SWITCH, /*goto*/ 0x08)
|
||||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x10)
|
||||
message(CHR_P1P2, 0x1624) // "Critical mission object has been destroyed."
|
||||
|
|
@ -2309,7 +2309,7 @@ u8 func1015_shuffle_hatchswitches[] = {
|
|||
yield \
|
||||
\
|
||||
beginloop(0x00) \
|
||||
consider_coop_for_p1p2_chr(CHR_SELF) \
|
||||
chr_toggle_p1p2(CHR_SELF) \
|
||||
if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x07) \
|
||||
endloop(0x00) \
|
||||
\
|
||||
|
|
@ -2682,7 +2682,7 @@ u8 func0418_elvis_at_moonpool[] = {
|
|||
set_onshot_function(FUNC_ELVIS_LEADING)
|
||||
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x07)
|
||||
endloop(0x00)
|
||||
|
|
@ -2801,7 +2801,7 @@ u8 func0417_elvis_prepare_leading[] = {
|
|||
|
||||
u8 func101d_alarm_switches[] = {
|
||||
beginloop(0x00)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x21, /*goto*/ 0x07)
|
||||
if_chr_activated_object(CHR_P1P2, 0x22, /*goto*/ 0x07)
|
||||
if_chr_activated_object(CHR_P1P2, 0x23, /*goto*/ 0x07)
|
||||
|
|
|
|||
|
|
@ -533,7 +533,7 @@ u8 func040c_start_path03[] = {
|
|||
|
||||
u8 func1008_check_generator[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_GENERATOR, /*goto*/ 0x08)
|
||||
if_object_in_good_condition(OBJ_GENERATOR, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_GENERATOR_SHUT_DOWN, TRUE, /*goto*/ 0x2c)
|
||||
|
|
@ -574,7 +574,7 @@ u8 func1003_laser_switch_1[] = {
|
|||
play_sound_from_object(CHANNEL_0, OBJ_LASER_1A, 0x012c, 0x0190)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH1, /*goto*/ 0x08)
|
||||
if_object_in_good_condition(OBJ_LASERSWITCH1, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, TRUE, /*goto*/ 0x2c)
|
||||
|
|
@ -640,7 +640,7 @@ u8 func1004_laser_switch_2[] = {
|
|||
play_sound_from_object(CHANNEL_1, OBJ_LASER_2A, 0x012c, 0x0190)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH2, /*goto*/ 0x08)
|
||||
if_object_in_good_condition(OBJ_LASERSWITCH2, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, TRUE, /*goto*/ 0x2c)
|
||||
|
|
@ -707,7 +707,7 @@ u8 func1005_laser_switch_3[] = {
|
|||
play_sound_from_object(CHANNEL_2, OBJ_LASER_3A, 0x012c, 0x0190)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH3, /*goto*/ 0x08)
|
||||
if_object_in_good_condition(OBJ_LASERSWITCH3, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, TRUE, /*goto*/ 0x2c)
|
||||
|
|
@ -773,7 +773,7 @@ u8 func1006_laser_switch_4[] = {
|
|||
play_sound_from_object(CHANNEL_3, OBJ_LASER_4A, 0x012c, 0x0190)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LASERSWITCH4, /*goto*/ 0x08)
|
||||
if_object_in_good_condition(OBJ_LASERSWITCH4, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET4_DISABLED, TRUE, /*goto*/ 0x2c)
|
||||
|
|
@ -1068,7 +1068,7 @@ u8 func0401_init_swat1[] = {
|
|||
init_swat
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x2c)
|
||||
if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2c)
|
||||
|
|
@ -1092,7 +1092,7 @@ u8 func0402_init_swat2[] = {
|
|||
init_swat
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x2c)
|
||||
if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2c)
|
||||
|
|
@ -1212,7 +1212,7 @@ u8 func100a_give_keycards[] = {
|
|||
|
||||
u8 func100b_check_backup_collected[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_BACKUPDISK, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1289,7 +1289,7 @@ u8 func100e_check_conspirators_alerted[] = {
|
|||
u8 func100f_alarm_switches[] = {
|
||||
// Wait until player activated alarm switch
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_ALARM1, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_ALARM2, /*goto*/ 0x2c)
|
||||
reloop(0x04)
|
||||
|
|
@ -1313,7 +1313,7 @@ u8 func100f_alarm_switches[] = {
|
|||
u8 func1010_safe_cracking[] = {
|
||||
// Wait for player to activate keypad or for it to be destroyed
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_SAFEKEYPAD, /*goto*/ 0x2c)
|
||||
message(CHR_BOND, 0x1840) // "Mission critical object destroyed."
|
||||
set_stage_flag(STAGEFLAG_SAFEKEYPAD_DESTROYED)
|
||||
|
|
@ -1385,7 +1385,7 @@ u8 func1010_safe_cracking[] = {
|
|||
u8 func1012_check_for_end[] = {
|
||||
// Wait until player on ending catwalk
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0061, /*goto*/ 0x06)
|
||||
reloop(0x08)
|
||||
|
|
@ -1463,7 +1463,7 @@ u8 func1013_check_escape_doors[] = {
|
|||
|
||||
u8 func1014_check_camspy_location[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(0x00, /*camspy*/ 0x02, 0x0094, /*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2255,7 +2255,7 @@ u8 func0412_cloak_guard[] = {
|
|||
|
||||
// Choose target
|
||||
label(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0x06)
|
||||
restart_timer
|
||||
|
|
@ -2329,7 +2329,7 @@ u8 func0413_cloak1_guard[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_distance_lt(400, /*goto*/ 0x06)
|
||||
if_jo_front_direction_lt(30, /*goto*/ 0x06)
|
||||
|
|
@ -2368,7 +2368,7 @@ u8 func0414_init_cloak2_guard[] = {
|
|||
u8 func101b_cloak2_entry[] = {
|
||||
// Wait until in glass area of second cloak room
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x001a, /*goto*/ 0x06)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -2524,7 +2524,7 @@ u8 func101c_check_visited_top_door[] = {
|
|||
|
||||
// Wait until player gone near top fire escape door
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 400, 0x0058, /*goto*/ 0x06)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -2588,7 +2588,7 @@ u8 func0408_init_cloak1_guard[] = {
|
|||
|
||||
u8 func101e_msg_nowaythrough[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET1_DISABLED, FALSE, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET2_DISABLED, FALSE, /*goto*/ 0x2c)
|
||||
if_stage_flag_eq(STAGEFLAG_LASERSET3_DISABLED, FALSE, /*goto*/ 0x2c)
|
||||
|
|
@ -2611,7 +2611,7 @@ u8 func101f_msg_meetingroomahead[] = {
|
|||
|
||||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_MEETING_HOLOGRAPHED, TRUE, /*goto*/ 0x0d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2c)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2631,7 +2631,7 @@ u8 func101f_msg_meetingroomahead[] = {
|
|||
|
||||
u8 func1020_msg_heavilyencrypted[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0050, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2644,7 +2644,7 @@ u8 func1020_msg_heavilyencrypted[] = {
|
|||
u8 func1021_blow_mines[] = {
|
||||
// Wait for backup collected
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_BACKUP_COLLECTED, TRUE, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2695,7 +2695,7 @@ u8 func1021_blow_mines[] = {
|
|||
|
||||
u8 func1022_light_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIGHTSWITCH, /*goto*/ 0x2c)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -983,7 +983,7 @@ u8 func1003_devicetraining_nightvision[] = {
|
|||
label(0x57)
|
||||
set_stage_flag(STAGEFLAG_TRIGGER_CANNOTEXIT_MSG)
|
||||
label(0x59)
|
||||
if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2f)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_LIGHTSWITCH, /*goto*/ 0x2f)
|
||||
endloop(0x82)
|
||||
|
||||
label(0x2f)
|
||||
|
|
@ -3548,7 +3548,7 @@ u8 func101c_holo1_main[] = {
|
|||
unset_object_flag_bank1(object, OBJECTFLAG1_00040000) \
|
||||
\
|
||||
beginloop(0x04) \
|
||||
if_chr_activated_object(CHR_F3, object, /*goto*/ 0x2f) \
|
||||
if_chr_activated_object(CHR_ANY, object, /*goto*/ 0x2f) \
|
||||
reloop(0x04) \
|
||||
\
|
||||
label(0x2f) \
|
||||
|
|
@ -3590,7 +3590,7 @@ u8 func1020_holo1_monitor_switches[] = {
|
|||
unset_object_flag_bank1(0x4f, OBJECTFLAG1_00040000)
|
||||
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, 0x4f, /*goto*/ 0x2f)
|
||||
if_chr_activated_object(CHR_ANY, 0x4f, /*goto*/ 0x2f)
|
||||
reloop(0x04)
|
||||
|
||||
label(0x2f)
|
||||
|
|
@ -3889,7 +3889,7 @@ u8 func1022_holo2_main[] = {
|
|||
#define holo2_do_thing(object, function) \
|
||||
restart_timer \
|
||||
beginloop(0x04) \
|
||||
if_chr_activated_object(CHR_F3, object, /*goto*/ 0x2f) \
|
||||
if_chr_activated_object(CHR_ANY, object, /*goto*/ 0x2f) \
|
||||
if_object_flag_bank1(object, OBJECTFLAG1_00000001, /*goto*/ 0x06) \
|
||||
reloop(0x04) \
|
||||
\
|
||||
|
|
@ -4273,7 +4273,7 @@ u8 func102b_holo3_part2[] = {
|
|||
|
||||
u8 func102c_holo3_object1[] = {
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, 0x65, /*goto*/ 0x2f)
|
||||
if_chr_activated_object(CHR_ANY, 0x65, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2f)
|
||||
|
|
@ -4288,7 +4288,7 @@ u8 func102c_holo3_object1[] = {
|
|||
|
||||
u8 func102d_holo3_object2[] = {
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, 0x66, /*goto*/ 0x2f)
|
||||
if_chr_activated_object(CHR_ANY, 0x66, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
||||
label(0x2f)
|
||||
|
|
@ -5684,7 +5684,7 @@ u8 func1035_manage_music[] = {
|
|||
|
||||
#define do_gun_msg(object, text) \
|
||||
beginloop(0x03) \
|
||||
if_chr_activated_object(CHR_F3, object, /*goto*/ 0x2f) \
|
||||
if_chr_activated_object(CHR_ANY, object, /*goto*/ 0x2f) \
|
||||
reloop(0x03) \
|
||||
\
|
||||
label(0x2f) \
|
||||
|
|
@ -5818,7 +5818,7 @@ u8 func1040_lift_door_sounds[] = {
|
|||
|
||||
// Play sounds when lift doors activated
|
||||
beginloop(0x8f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x80, /*goto*/ 0x2f)
|
||||
if_chr_activated_object(CHR_P1P2, 0x81, /*goto*/ 0x2f)
|
||||
if_chr_activated_object(CHR_P1P2, 0x82, /*goto*/ 0x2f)
|
||||
|
|
|
|||
|
|
@ -938,7 +938,7 @@ u8 func0404_scientist[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2f)
|
||||
if_chr_distance_lt(500, /*goto*/ 0x2f)
|
||||
|
|
@ -1296,7 +1296,7 @@ u8 func0406_nasty_scientist[] = {
|
|||
|
||||
u8 func1009_weaponscache[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_CACHETERMINAL, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
|
@ -1343,7 +1343,7 @@ u8 func1002_bot_activation_terminal[] = {
|
|||
set_function(CHR_SELF, GFUNC_IDLE)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_BOT_ACTIVATION_TERMINAL, /*goto*/ 0x2f)
|
||||
reloop(0x04)
|
||||
|
|
@ -1421,7 +1421,7 @@ u8 func1003_bot_programming_terminal[] = {
|
|||
set_function(CHR_SELF, GFUNC_IDLE)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_BOT_PROGRAMMING_TERMINAL, /*goto*/ 0x2f)
|
||||
reloop(0x04)
|
||||
|
|
@ -1505,7 +1505,7 @@ u8 func1018_item_pickup_messages[] = {
|
|||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x0d)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_HAS_K7AVENGER, TRUE, /*goto*/ 0x2f)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_K7AVENGER, /*goto*/ 0x06)
|
||||
goto_next(0x2f)
|
||||
|
|
@ -1596,7 +1596,7 @@ u8 func1005_check_unacceptable_casualties[] = {
|
|||
|
||||
u8 func1006_terminal_activation[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_GOODTERM1, /*goto*/ 0x08)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_ALARMTERM1, /*goto*/ 0x09)
|
||||
|
|
@ -1783,7 +1783,7 @@ u8 func1007_uplink[] = {
|
|||
goto_next(0x0d)
|
||||
|
||||
label(0x30)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_UPLINKPC, /*goto*/ 0x2f)
|
||||
reloop(0x04)
|
||||
|
|
@ -2602,7 +2602,7 @@ u8 func1415_outro_audio[] = {
|
|||
|
||||
u8 func100f_check_for_end_level[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0063, /*goto*/ 0x2f)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0065, /*goto*/ 0x2f)
|
||||
reloop(0x04)
|
||||
|
|
@ -2722,7 +2722,7 @@ u8 func1012_start_laser_sound[] = {
|
|||
|
||||
u8 func1013_hatch_pc[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_HATCHPC, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
|
@ -2823,7 +2823,7 @@ u8 func0402_k7_guard[] = {
|
|||
set_onshot_function(GFUNC_ALERTED)
|
||||
|
||||
beginloop(0x0f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
set_follow_chr(CHR_P1P2)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x0036, /*goto*/ 0x03)
|
||||
|
|
@ -2840,7 +2840,7 @@ u8 func0402_k7_guard[] = {
|
|||
label(0x06)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
if_near_miss(/*goto*/ 0x0c)
|
||||
|
|
@ -2858,7 +2858,7 @@ u8 func0402_k7_guard[] = {
|
|||
say_quip(CHR_BOND, 0x00, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
if_near_miss(/*goto*/ 0x0c)
|
||||
|
|
@ -2894,7 +2894,7 @@ u8 func0402_k7_guard[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
if_near_miss(/*goto*/ 0x0c)
|
||||
|
|
@ -2908,7 +2908,7 @@ u8 func0402_k7_guard[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
if_near_miss(/*goto*/ 0x0c)
|
||||
|
|
@ -2928,7 +2928,7 @@ u8 func0402_k7_guard[] = {
|
|||
|
||||
u8 func0403_k7_scientist[] = {
|
||||
beginloop(0x14)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x0035, /*goto*/ 0x03)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x0036, /*goto*/ 0x03)
|
||||
|
|
@ -2941,7 +2941,7 @@ u8 func0403_k7_scientist[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
if_near_miss(/*goto*/ 0x0c)
|
||||
|
|
@ -2971,7 +2971,7 @@ u8 func0403_k7_scientist[] = {
|
|||
goto_next(0x0f)
|
||||
|
||||
beginloop(0x0f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
if_near_miss(/*goto*/ 0x0c)
|
||||
|
|
@ -3040,7 +3040,7 @@ u8 func040b_init_shock_guard[] = {
|
|||
|
||||
u8 func1019_msg_securitysector[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0052, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3052,7 +3052,7 @@ u8 func1019_msg_securitysector[] = {
|
|||
|
||||
u8 func101a_msg_lotofpower[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x2f)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
|
@ -3067,7 +3067,7 @@ u8 func101b_msg_reprogram[] = {
|
|||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x08)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x2f)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0024, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
|
@ -3082,7 +3082,7 @@ u8 func101b_msg_reprogram[] = {
|
|||
u8 func101c_msg_radioactive[] = {
|
||||
beginloop(0x04)
|
||||
if_objective_complete(0, /*goto*/ 0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x2f)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -1549,7 +1549,7 @@ u8 func0402_taker[] = {
|
|||
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x04)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
dprint 'A','I','M','I','N','G',' ','A','T',' ','M','E','\n',0,
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0236, /*goto*/ 0x06)
|
||||
label(0x2d)
|
||||
|
|
@ -1704,7 +1704,7 @@ u8 func1005_toggle_snipers[] = {
|
|||
hide_chr(CHR_SNIPER8)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x06)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -1723,7 +1723,7 @@ u8 func1005_toggle_snipers[] = {
|
|||
// @bug: When using small characters or play as Elvis cheats, the height
|
||||
// criteria is not met so the snipers cannot be unhidden.
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -500, OPERATOR_LESS_THAN, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004e, /*goto*/ 0x06)
|
||||
label(0x2d)
|
||||
|
|
@ -1791,7 +1791,7 @@ u8 func0404_sniper[] = {
|
|||
endloop(0x11)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
dprint 'S','T','A','R','T','\n',0,
|
||||
if_target_chr_in_sight(/*goto*/ 0x58)
|
||||
|
|
@ -1823,7 +1823,7 @@ u8 func0404_sniper[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x58)
|
||||
if_saw_death(0x00, /*goto*/ 0x58)
|
||||
|
|
@ -1858,7 +1858,7 @@ u8 func0404_sniper[] = {
|
|||
|
||||
label(0x0b)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x58)
|
||||
if_saw_death(0x00, /*goto*/ 0x58)
|
||||
|
|
@ -1957,7 +1957,7 @@ u8 func1006_check_snipers_dead[] = {
|
|||
|
||||
u8 func1007_cooling_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_COOLING_SWITCH, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2007,7 +2007,7 @@ u8 func1007_cooling_switch[] = {
|
|||
|
||||
u8 func1008_power_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_POWER_SWITCH, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2057,7 +2057,7 @@ u8 func1008_power_switch[] = {
|
|||
|
||||
u8 func1009_windmill_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_WINDMILL_SWITCH, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2211,7 +2211,7 @@ u8 func0405_hacker[] = {
|
|||
animation(ANIM_SITTING_TYPING, 0, -1, 0x14, 0x00, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_HACKERS_SUCCEEDED, TRUE, /*goto*/ 0x2d)
|
||||
if_chr_sees_player(/*goto*/ 0x09)
|
||||
|
|
@ -2222,7 +2222,7 @@ u8 func0405_hacker[] = {
|
|||
run_to_pad(0x0070)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x09)
|
||||
if_chr_stopped(/*goto*/ 0x06)
|
||||
|
|
@ -2290,7 +2290,7 @@ u8 func100e_check_objectives_complete[] = {
|
|||
// player to enter the cellar while closing the door behind them and then
|
||||
// mess with Carrington.
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_door_state(0x09, DOORSTATEBIT_OPEN, /*goto*/ 0x2d)
|
||||
if_door_state(0x08, DOORSTATEBIT_OPEN, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
|
@ -2532,7 +2532,7 @@ u8 func040b_init_basement_guard[] = {
|
|||
|
||||
u8 func1016_msg_generator[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0077, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2578,7 +2578,7 @@ u8 func1018_msg_hidingdaniel[] = {
|
|||
endloop(0x04)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -2637,7 +2637,7 @@ u8 func101b_toggle_basement_chrs[] = {
|
|||
|
||||
// Not sure which room 0x0087 is
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2836,7 +2836,7 @@ u8 func101c_toggle_villa_guards[] = {
|
|||
// @bug: It is possible to cross room 0x002a in a single frame on coop if
|
||||
// hugging the corner tightly, which means the guards will not be unhidden.
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x002a, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3201,7 +3201,7 @@ u8 func1025_check_basement_entered_without_subdue[] = {
|
|||
|
||||
beginloop(0x04)
|
||||
if_objective_complete(4, /*goto*/ 0x0c)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0087, /*goto*/ 0x06)
|
||||
label(0x0c)
|
||||
endloop(0x04)
|
||||
|
|
|
|||
|
|
@ -803,7 +803,7 @@ u8 func1005_check_safeinfo_destroyed[] = {
|
|||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0e) \
|
||||
\
|
||||
beginloop(0x04) \
|
||||
consider_coop_for_p1p2_chr(CHR_SELF) \
|
||||
chr_toggle_p1p2(CHR_SELF) \
|
||||
if_object_in_good_condition(switch, /*goto*/ 0x2e) \
|
||||
goto_next(0x0b) \
|
||||
\
|
||||
|
|
@ -1650,7 +1650,7 @@ u8 func100e_setup_firingrange[] = {
|
|||
|
||||
// Wait until guns complete or failed, or skip this check if Agent
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x2e)
|
||||
if_objective_complete(0, /*goto*/ 0x2e)
|
||||
if_stage_flag_eq(STAGEFLAG_AUTOGUN_SWITCH_DESTROYED, TRUE, /*goto*/ 0x2e)
|
||||
|
|
@ -1673,7 +1673,7 @@ u8 func100e_setup_firingrange[] = {
|
|||
|
||||
// Wait until player in firing range entrance or door is opening
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0007, /*goto*/ 0x08)
|
||||
if_door_state(0x23, (DOORSTATEBIT_OPEN | DOORSTATEBIT_CLOSING | DOORSTATEBIT_OPENING), /*goto*/ 0x2f)
|
||||
endloop(0x0a)
|
||||
|
|
@ -1683,7 +1683,7 @@ u8 func100e_setup_firingrange[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x71)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0007, /*goto*/ 0x08)
|
||||
if_timer_gt(600, /*goto*/ 0x08)
|
||||
endloop(0x71)
|
||||
|
|
@ -1728,7 +1728,7 @@ u8 func041a_hostage_holo[] = {
|
|||
|
||||
// Alive - wait until holo room door opened
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_door_state(0x43, (DOORSTATEBIT_OPEN | DOORSTATEBIT_OPENING), /*goto*/ 0x2e)
|
||||
if_door_state(0x44, (DOORSTATEBIT_OPEN | DOORSTATEBIT_OPENING), /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
|
@ -2250,7 +2250,7 @@ u8 func042e_taker_device_m[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00020000)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x08)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x08)
|
||||
|
|
@ -2302,7 +2302,7 @@ u8 func0430_taker_device_f[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00020000)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x08)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x08)
|
||||
|
|
@ -2892,7 +2892,7 @@ u8 func1014_carrington_messages[] = {
|
|||
endloop(0xca)
|
||||
|
||||
beginloop(0xcb)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_all_objectives_complete(/*goto*/ 0x2e)
|
||||
reloop(0xcb)
|
||||
|
||||
|
|
@ -2928,7 +2928,7 @@ u8 func1014_carrington_messages[] = {
|
|||
|
||||
u8 func1015_firingrange_pc[] = {
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_FR_PC, /*goto*/ 0x08)
|
||||
if_object_in_good_condition(OBJ_FR_PC, /*goto*/ 0x2e)
|
||||
goto_next(0x2f)
|
||||
|
|
@ -3108,7 +3108,7 @@ u8 func0410_spawner6[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00040000)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(2, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3477,7 +3477,7 @@ u8 func101c_msg_fosterworkingon[] = {
|
|||
reloop(0x04)
|
||||
|
||||
label(0x2f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0009, /*goto*/ 0x2e)
|
||||
endloop(0x0a)
|
||||
|
||||
|
|
@ -3652,7 +3652,7 @@ u8 func1024_setup_lifts[] = {
|
|||
|
||||
u8 func1025_lift_door_sounds[] = {
|
||||
beginloop(0xe4)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ 0x2e)
|
||||
if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ 0x2e)
|
||||
if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x2e)
|
||||
|
|
@ -3698,7 +3698,7 @@ u8 func1027_uplink[] = {
|
|||
goto_next(0x0f)
|
||||
|
||||
label(0x2f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_activated_object(CHR_TARGET, OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
|
@ -3796,7 +3796,7 @@ u8 func1027_uplink[] = {
|
|||
u8 func1028_shuttle_immunity[] = {
|
||||
beginloop(0xe4)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_SHUTTLE_TAKEOFF, TRUE, /*goto*/ 0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0045, /*goto*/ 0x2e)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0046, /*goto*/ 0x2e)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0047, /*goto*/ 0x2e)
|
||||
|
|
|
|||
|
|
@ -581,7 +581,7 @@ u8 func1004_check_hangar_doors_opened[] = {
|
|||
set_object_flag_bank0(OBJ_HANGARDOOR4, OBJECTFLAG0_02000000)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_HANGARDOORCONSOLE, /*goto*/ 0x06)
|
||||
if_object_in_good_condition(OBJ_HANGARDOORCONSOLE, /*goto*/ 0x2d)
|
||||
|
|
@ -711,7 +711,7 @@ u8 func040e_elvis_give_ar34[] = {
|
|||
|
||||
// Wait until player in sight
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
set_follow_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x2c)
|
||||
|
|
@ -1157,7 +1157,7 @@ u8 func0410_wake_suspendedanim_skedar[] = {
|
|||
|
||||
u8 func1006_wake_slayer_skedar[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0033, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1202,7 +1202,7 @@ u8 func1006_wake_slayer_skedar[] = {
|
|||
label(0x2c)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_ENTERED_SLAYER_AREA, TRUE, /*goto*/ 0x2c)
|
||||
reloop(0x0a)
|
||||
|
||||
|
|
@ -1297,7 +1297,7 @@ u8 func1008_hangar_lifts[] = {
|
|||
|
||||
beginloop(0x67)
|
||||
dprint 'T','R','\n',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x2c)
|
||||
if_chr_in_room(CHR_BOND, 0x00, 0x0018, /*goto*/ 0x2c)
|
||||
if_door_state(0x39, (DOORSTATEBIT_CLOSED | DOORSTATEBIT_CLOSING), /*goto*/ 0x2d)
|
||||
|
|
@ -1327,7 +1327,7 @@ u8 func1008_hangar_lifts[] = {
|
|||
// Wait until Y coordinate >= 400
|
||||
beginloop(0x09)
|
||||
dprint 'P','U','\n',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_death_animation_finished(CHR_P1P2, /*goto*/ 0x2c)
|
||||
if_chr_y(CHR_P1P2, 400, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x0a)
|
||||
|
|
@ -1407,7 +1407,7 @@ u8 func1008_hangar_lifts[] = {
|
|||
// For buddy or counterop who might still be in the hangar,
|
||||
// wait for lift to be called from hangar
|
||||
beginloop(0x68)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3b, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3c, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_ANTI, 0x3b, /*goto*/ 0x2c)
|
||||
|
|
@ -1483,7 +1483,7 @@ u8 func0408_knifeable_skedar[] = {
|
|||
try_face_entity(0x0200, 0x0000, /*goto*/ 0x04)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_CASS_AT_PAD, TRUE, /*goto*/ 0x06)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
|
|
@ -1505,7 +1505,7 @@ u8 func0408_knifeable_skedar[] = {
|
|||
jog_to_pad(0x00dd)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_stopped(/*goto*/ 0x06)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
|
|
@ -1519,7 +1519,7 @@ u8 func0408_knifeable_skedar[] = {
|
|||
try_face_entity(ENTITYTYPE_PAD, 0x00ef, /*goto*/ 0x0b)
|
||||
|
||||
beginloop(0x0b)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_timer_gt(600, /*goto*/ 0x06)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0c)
|
||||
|
|
@ -1533,7 +1533,7 @@ u8 func0408_knifeable_skedar[] = {
|
|||
jog_to_pad(0x00d9)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_just_injured(CHR_SELF, /*goto*/ 0x0c)
|
||||
dprint 'W','A','I','T','I','N','G',' ','T','W','O','\n',0,
|
||||
|
|
@ -1958,7 +1958,7 @@ u8 func100c_engineroom[] = {
|
|||
u8 func100d_prebridgelift[] = {
|
||||
// Wait until Y >= 2600
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 2600, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x0a)
|
||||
|
||||
|
|
@ -1979,7 +1979,7 @@ u8 func100d_prebridgelift[] = {
|
|||
|
||||
// Wait until lift called at bottom by buddy or counterop
|
||||
beginloop(0x68)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3d, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3e, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_ANTI, 0x3d, /*goto*/ 0x2c)
|
||||
|
|
@ -2038,7 +2038,7 @@ u8 func100d_prebridgelift[] = {
|
|||
u8 func100e_bridgelift[] = {
|
||||
// Wait until Y >= 3600
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 3600, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x0a)
|
||||
|
||||
|
|
@ -2061,7 +2061,7 @@ u8 func100e_bridgelift[] = {
|
|||
|
||||
// Wait until lift called from below by buddy or counterop
|
||||
beginloop(0x68)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x2f, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x30, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_ANTI, 0x2f, /*goto*/ 0x2c)
|
||||
|
|
@ -2986,7 +2986,7 @@ u8 func0421_bridge_skedar[] = {
|
|||
kneel
|
||||
|
||||
beginloop(0xc7)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
label(0x2c)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x06)
|
||||
|
|
@ -3042,7 +3042,7 @@ u8 func0421_bridge_skedar[] = {
|
|||
|
||||
label(0xcd)
|
||||
call_rng
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x06)
|
||||
if_target_chr_in_sight(/*goto*/ 0xce)
|
||||
|
|
@ -3062,7 +3062,7 @@ u8 func0421_bridge_skedar[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0xd1)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0xce)
|
||||
if_timer_gt(300, /*goto*/ 0x06)
|
||||
|
|
@ -3137,7 +3137,7 @@ u8 func1014_msg_hangarbaydoors[] = {
|
|||
|
||||
u8 func1015_msg_starmaps[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x003e, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3149,7 +3149,7 @@ u8 func1015_msg_starmaps[] = {
|
|||
|
||||
u8 func1016_msg_ifwecontrolthebridge[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x006f, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3234,7 +3234,7 @@ u8 func0423_shy_skedar[] = {
|
|||
run_to_pad(0x00da)
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2d)
|
||||
if_chr_distance_to_pad_lt(CHR_SELF, 200, 0x00da, /*goto*/ 0x2d)
|
||||
|
|
@ -3401,7 +3401,7 @@ u8 func101a_kill_maian[] = {
|
|||
|
||||
u8 func101c_lift_door_sounds[] = {
|
||||
beginloop(0xc2)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x2f, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x30, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x31, /*goto*/ 0x2c)
|
||||
|
|
@ -3454,7 +3454,7 @@ u8 func101d_unlock_doors[] = {
|
|||
|
||||
u8 func101e_bridge_music[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_BOND, 0x00, 0x006e, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3534,7 +3534,7 @@ u8 func1020_engine_hum_noise[] = {
|
|||
u8 func1021_check_ammo_wasted[] = {
|
||||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_SHIELDS_DISABLED, TRUE, /*goto*/ 0x0d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_weapon_equipped(CHR_P1P2, WEAPON_MAULER, /*goto*/ 0x65)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3650,7 +3650,7 @@ u8 func1025_toggle_chrs[] = {
|
|||
hide_chr(CHR_BRIDGESPAWNER2)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 450, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x06)
|
||||
|
||||
|
|
@ -3724,7 +3724,7 @@ u8 func1025_toggle_chrs[] = {
|
|||
rebuild_squadrons
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 550, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x06)
|
||||
|
||||
|
|
|
|||
|
|
@ -858,7 +858,7 @@ u8 func1400_give_datauplinks[] = {
|
|||
|
||||
u8 func1007_check_disguise_collected[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT1, /*goto*/ 0x06)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT2, /*goto*/ 0x06)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_LABCOAT3, /*goto*/ 0x06)
|
||||
|
|
@ -893,7 +893,7 @@ u8 func1026_check_records_destroyed[] = {
|
|||
|
||||
u8 func1003_uplink_doors[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x02, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -970,7 +970,7 @@ u8 func1003_uplink_doors[] = {
|
|||
|
||||
u8 func1004_uplink_lights[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x01, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -1061,7 +1061,7 @@ u8 func1004_uplink_lights[] = {
|
|||
|
||||
u8 func1005_uplink_autoguns[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x03, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -1142,7 +1142,7 @@ u8 func1005_uplink_autoguns[] = {
|
|||
|
||||
u8 func1006_check_lab_accessed[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x008f, /*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1342,7 +1342,7 @@ u8 func0410_labtech_showers_sa_pa[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2d)
|
||||
if_chr_distance_lt(500, /*goto*/ 0x03)
|
||||
|
|
@ -1716,7 +1716,7 @@ u8 func0418_doorman[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x03)
|
||||
if_chr_distance_lt(500, /*goto*/ 0x03)
|
||||
|
|
@ -1850,7 +1850,7 @@ u8 func0418_doorman[] = {
|
|||
|
||||
u8 func100b_check_doorman_dead[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_dying(CHR_DOORMAN, /*goto*/ 0x2d)
|
||||
if_chr_death_animation_finished(CHR_DOORMAN, /*goto*/ 0x2d)
|
||||
if_chr_unloaded(CHR_DOORMAN, /*goto*/ 0x2d)
|
||||
|
|
@ -1944,7 +1944,7 @@ u8 func041a_labtech_harrysmate[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x08)
|
||||
endloop(0x04)
|
||||
|
|
@ -2045,7 +2045,7 @@ u8 func041b_labtech_keycardguy[] = {
|
|||
// Not injured, or recovered
|
||||
// Waiting to detect Jo
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2d)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x2d)
|
||||
|
|
@ -2103,7 +2103,7 @@ u8 func100c_keycardguy_lights[] = {
|
|||
|
||||
u8 func100d_check_entered_lab[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0083, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0084, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0085, /*goto*/ 0x06)
|
||||
|
|
@ -2153,7 +2153,7 @@ u8 func100e_elvis_timer[] = {
|
|||
|
||||
u8 func100f_check_end_level[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 300, 0x02a1, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2298,7 +2298,7 @@ u8 func0413_mechanic[] = {
|
|||
|
||||
// Wait for player to attempt to open door
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x0a)
|
||||
if_chr_activated_object(CHR_P1P2, 0x14, /*goto*/ 0x2d)
|
||||
|
|
@ -2319,7 +2319,7 @@ u8 func0413_mechanic[] = {
|
|||
open_door(0x15)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x06)
|
||||
endloop(0x0a)
|
||||
|
|
@ -2370,7 +2370,7 @@ u8 func0413_mechanic[] = {
|
|||
u8 func1011_unhide_warehouse_spawner[] = {
|
||||
// Wait until player near second elevator
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00f8, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00f7, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00f6, /*goto*/ 0x06)
|
||||
|
|
@ -2391,7 +2391,7 @@ u8 func0415_warehouse_spawner[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x08)
|
||||
if_chr_in_room(CHR_TARGET, 0x00, 0x00f8, /*goto*/ 0x08)
|
||||
|
|
@ -2545,7 +2545,7 @@ u8 func041e_unused_041e[] = {
|
|||
|
||||
u8 func1016_check_undisguised[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_DISGUISE_UNCOVERED, TRUE, /*goto*/ 0x06)
|
||||
if_chr_dying(CHR_LABTECH_HARRYSMATE, /*goto*/ 0x06)
|
||||
if_chr_dying(CHR_LABTECH_KEYCARDGUY, /*goto*/ 0x06)
|
||||
|
|
@ -2615,7 +2615,7 @@ u8 func041f_labtech_lights[] = {
|
|||
goto_next(0x04)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53)
|
||||
if_target_chr_in_sight(/*goto*/ 0x03)
|
||||
|
|
@ -2701,7 +2701,7 @@ u8 func041f_labtech_lights[] = {
|
|||
walk_to_pad(0x020d)
|
||||
|
||||
beginloop(0x0d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2d)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x0f)
|
||||
|
|
@ -2739,7 +2739,7 @@ u8 func041f_labtech_lights[] = {
|
|||
animation(ANIM_OPERATE_0223, -1, -1, 0x10, 0x0a, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x0e)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2d)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x0f)
|
||||
|
|
@ -2822,7 +2822,7 @@ u8 func0420_labtech_doors[] = {
|
|||
label(0x6f)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
set_target_chr(CHR_BOND)
|
||||
if_chr_flag_bank2(CHR_TARGET, CHRFLAG2_DISGUISE_UNCOVERED, /*goto*/ 0x06)
|
||||
|
|
@ -3063,7 +3063,7 @@ u8 func0422_labtech_records[] = {
|
|||
goto_first(0x5e)
|
||||
|
||||
label(0x2d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x03)
|
||||
if_alertness(99, OPERATOR_GREATER_THAN, /*goto*/ 0x03)
|
||||
|
|
@ -3152,7 +3152,7 @@ u8 func1018_disable_chambers[] = {
|
|||
#define chamber_logic(switch, chamber, stageflag) \
|
||||
/* Wait for player to activate chamber switch */ \
|
||||
beginloop(0x04) \
|
||||
consider_coop_for_p1p2_chr(CHR_SELF) \
|
||||
chr_toggle_p1p2(CHR_SELF) \
|
||||
if_chr_activated_object(CHR_P1P2, switch, /*goto*/ 0x06) \
|
||||
reloop(0x04) \
|
||||
\
|
||||
|
|
@ -3214,7 +3214,7 @@ u8 func1018_disable_chambers[] = {
|
|||
u8 func1019_chamber1[] = {
|
||||
// Wait for player to activate chamber switch
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER1_SWITCH, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3285,7 +3285,7 @@ u8 func1019_chamber1[] = {
|
|||
u8 func101a_chamber2[] = {
|
||||
// Wait for player to activate chamber switch
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER2_SWITCH, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3371,7 +3371,7 @@ u8 func1020_chamber8[] = {
|
|||
// Wait for player to activate chamber switch
|
||||
beginloop(0x04)
|
||||
// Likely @bug: Chamber 8 is the only chamber that doesn't call
|
||||
// consider_coop_for_p1p2_chr here.
|
||||
// chr_toggle_p1p2 here.
|
||||
// Co-op player might not be able to activate chamber 8.
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_CHAMBER8_SWITCH, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
|
@ -3488,7 +3488,7 @@ u8 func1021_xray_scanning[] = {
|
|||
beginloop(0x04)
|
||||
// @bug? In co-op, the player wearing the xray may be the player who is
|
||||
// not looking at the alien.
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_weapon_equipped(CHR_P1P2, WEAPON_XRAYSCANNER, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3528,7 +3528,7 @@ u8 unregistered_function1[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_timer_gt(600, /*goto*/ 0x08)
|
||||
pause_timer
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06)
|
||||
|
|
@ -3591,7 +3591,7 @@ u8 func0427_shock_clone[] = {
|
|||
|
||||
label(0x04)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x010d, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0102, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0103, /*goto*/ 0x06)
|
||||
|
|
@ -3967,7 +3967,7 @@ u8 func1025_toggle_guards[] = {
|
|||
set_chr_flag_bank3(0x32, CHRFLAG3_INVINCIBLE_TO_GUNFIRE)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_KEYCARD, /*goto*/ 0x2d)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -4022,14 +4022,14 @@ u8 func0429_spawn_while_xraying[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x0d)
|
||||
if_timer_gt(1800, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
// 30 seconds passed and not disguised
|
||||
label(0x2d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_DISGUISED, /*goto*/ 0x0d)
|
||||
|
||||
// Xray area
|
||||
|
|
@ -4403,7 +4403,7 @@ u8 func102f_shuffle_disguise[] = {
|
|||
|
||||
u8 func1030_lift_door_sounds[] = {
|
||||
beginloop(0x5e)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ 0x2d)
|
||||
if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ 0x2d)
|
||||
if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x2d)
|
||||
|
|
@ -4497,7 +4497,7 @@ u8 func1032_count_last_room_guards[] = {
|
|||
*/
|
||||
u8 func1033_update_buddy_placed_flag[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_flag_bank2(CHR_P1P2, CHRFLAG2_BUDDY_PLACED, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -964,7 +964,7 @@ u8 func140e_check_interceptors_destroyed[] = {
|
|||
|
||||
u8 func100c_maingate_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_door_state(OBJ_MAINGATE1, DOORSTATEBIT_CLOSING, /*goto*/ 0x2e)
|
||||
goto_next(0x06)
|
||||
|
||||
|
|
@ -1107,7 +1107,7 @@ u8 func1405_antenna_switch[] = {
|
|||
set_object_flag_bank0(OBJ_ANTENNA, OBJECTFLAG0_DEACTIVATED)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_ANTENNA_SWITCH, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -1163,7 +1163,7 @@ u8 func1405_antenna_switch[] = {
|
|||
|
||||
u8 func1006_lift_switches[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIFT1_SWITCH, /*goto*/ 0x09)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_LIFT2_SWITCH, /*goto*/ 0x0a)
|
||||
reloop(0x04)
|
||||
|
|
@ -1229,7 +1229,7 @@ u8 func1006_lift_switches[] = {
|
|||
|
||||
u8 func1007_check_hangar_accessed[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0042, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0043, /*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
|
@ -1248,7 +1248,7 @@ u8 func1008_check_end_level[] = {
|
|||
endloop(0x04)
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0060, /*goto*/ 0x06)
|
||||
endloop(0x09)
|
||||
|
||||
|
|
@ -1296,7 +1296,7 @@ u8 func1009_check_radar_shut_down[] = {
|
|||
|
||||
u8 func100b_final_hangar[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(0, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -1521,9 +1521,9 @@ u8 func0417_traitor[] = {
|
|||
goto_next(0x0c)
|
||||
|
||||
beginloop(0x0b)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -1373, OPERATOR_LESS_THAN, /*goto*/ 0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -1373, OPERATOR_LESS_THAN, /*goto*/ 0x10)
|
||||
if_chr_stopped(/*goto*/ 0x0c)
|
||||
endloop(0x0b)
|
||||
|
|
@ -1593,7 +1593,7 @@ u8 func0416_mechanic[] = {
|
|||
animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x10, 0x10, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_INTERCEPTOR, TRUE, /*goto*/ 0x2f)
|
||||
if_just_injured(CHR_SELF, /*goto*/ 0x2e)
|
||||
|
|
@ -1616,7 +1616,7 @@ u8 func0416_mechanic[] = {
|
|||
animation(ANIM_STANDING_TYPE_ONE_HAND, 0, 193, 0x10, 0x10, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x0d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_shot_at_close_range(/*goto*/ 0x2e)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2e)
|
||||
|
|
@ -1680,7 +1680,7 @@ u8 func040a_top_interceptor[] = {
|
|||
set_chr_health(CHR_SELF, 5000)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x59)
|
||||
endloop(0x04)
|
||||
|
|
@ -1691,7 +1691,7 @@ u8 func040a_top_interceptor[] = {
|
|||
begin_hovercar_path(0x22)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0x06)
|
||||
if_chr_sees_player(/*goto*/ 0x59)
|
||||
|
|
@ -2364,7 +2364,7 @@ u8 func1013_bunker_lasers[] = {
|
|||
|
||||
u8 func1011_bunker_explosives[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_RADAR_TERMINAL, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2597,7 +2597,7 @@ u8 func1018_unhide_guards[] = {
|
|||
|
||||
// Wait until player in room 0x0044 (first hangar ramp)
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0044, /*goto*/ 0x2e)
|
||||
endloop(0x09)
|
||||
|
||||
|
|
@ -2823,7 +2823,7 @@ u8 func101a_check_mechanic_dead[] = {
|
|||
*/
|
||||
u8 func101b_msg_airinterceptradar[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0001, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2838,7 +2838,7 @@ u8 func101c_msg_cantthrow[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0013, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2855,7 +2855,7 @@ u8 func101c_msg_cantthrow[] = {
|
|||
u8 func101d_msg_hangarlift[] = {
|
||||
// Wait for radar shut down and player in room 0x0001 (which is impossible)
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(0, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -2871,7 +2871,7 @@ u8 func101d_msg_hangarlift[] = {
|
|||
|
||||
u8 func101e_msg_triggerfinger[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0051, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2885,7 +2885,7 @@ u8 func0421_activate_autogun[] = {
|
|||
set_onshot_function(GFUNC_ALERTED)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2e)
|
||||
if_shot_at_close_range(/*goto*/ 0x2e)
|
||||
|
|
@ -2983,7 +2983,7 @@ u8 func1022_check_lift_switches_destroyed[] = {
|
|||
|
||||
u8 func1024_lift_door_sounds[] = {
|
||||
beginloop(0x7e)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3c, /*goto*/ 0x0a)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3e, /*goto*/ 0x0b)
|
||||
if_chr_activated_object(CHR_P1P2, 0x3d, /*goto*/ 0x41)
|
||||
|
|
|
|||
|
|
@ -3117,7 +3117,7 @@ u8 func041b_sniper_wait_for_detection[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x2e)
|
||||
if_enemy_distance_lt_and_los(1000, /*goto*/ 0x2e)
|
||||
|
|
@ -3162,7 +3162,7 @@ u8 func041d_sniper[] = {
|
|||
cmd0139(70, 0x02, TRUE)
|
||||
|
||||
beginloop(0x63)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_sees_player(/*goto*/ 0x2e)
|
||||
dprint 'N','O',' ','P','L','A','Y','E','R',' ','T','A','R','G','E','T','\n',0,
|
||||
if_enemy_distance_lt_and_los(1000, /*goto*/ 0x2f)
|
||||
|
|
@ -3251,7 +3251,7 @@ u8 func041d_sniper[] = {
|
|||
|
||||
u8 func040c_blonde[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3285,7 +3285,7 @@ u8 func100c_countdown_timer[] = {
|
|||
start_countdown_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_countdown_timer_lt(1, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x000c, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
|
@ -3516,7 +3516,7 @@ u8 func1010_agent_hallway_spawner[] = {
|
|||
|
||||
// Wait until player in a certain room
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0054, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3529,7 +3529,7 @@ u8 func1010_agent_hallway_spawner[] = {
|
|||
|
||||
// Wait until player in a certain room
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_P1P2)
|
||||
chr_toggle_p1p2(CHR_P1P2)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x005a, /*goto*/ 0x2e)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -3542,7 +3542,7 @@ u8 func1010_agent_hallway_spawner[] = {
|
|||
|
||||
// Wait until player in a certain room
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2e)
|
||||
endloop(0x09)
|
||||
|
||||
|
|
@ -3990,7 +3990,7 @@ u8 func040a_check_pa_canisters_destroyed[] = {
|
|||
*/
|
||||
u8 func101f_pa_circleroom_spawner[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_door_state(0x09, (DOORSTATEBIT_OPEN | DOORSTATEBIT_CLOSING | DOORSTATEBIT_OPENING), /*goto*/ 0x2e)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x008b, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
|
@ -4007,7 +4007,7 @@ u8 func101f_pa_circleroom_spawner[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x20)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x008c, /*goto*/ 0x58)
|
||||
dprint 'T','I','M','E','\n',0,
|
||||
if_timer_lt(300, /*goto*/ 0x21)
|
||||
|
|
@ -4045,7 +4045,7 @@ u8 func041f_init_pa_circleroom_miniskedar[] = {
|
|||
|
||||
u8 func1020_pa_deadendroom_spawner[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00b4, /*goto*/ 0x2e)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00b8, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
|
@ -4193,7 +4193,7 @@ u8 func1022_control_room[] = {
|
|||
|
||||
// SA and PA
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -4228,7 +4228,7 @@ u8 func1023_check_drcaroll_restored[] = {
|
|||
if_chr_death_animation_finished(CHR_ELVIS, /*goto*/ 0x0d)
|
||||
if_chr_dying(CHR_ELVIS, /*goto*/ 0x0d)
|
||||
if_chr_unloaded(CHR_ELVIS, /*goto*/ 0x0d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 200, 0x0193, /*goto*/ 0x2e)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -4516,7 +4516,7 @@ u8 func040f_miniskedar_unalerted[] = {
|
|||
rebuild_squadrons
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
|
@ -4583,7 +4583,7 @@ u8 func042c_elvis_stop[] = {
|
|||
u8 func102f_unlock_drcaroll_door[] = {
|
||||
// Wait until player in Dr Caroll room
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -4693,7 +4693,7 @@ u8 func1034_enable_blondes[] = {
|
|||
hide_chr(CHR_BLONDE2)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004c, /*goto*/ 0x2e)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -710,7 +710,7 @@ u8 func100f_check_mine[] = {
|
|||
// SA and PA
|
||||
yield
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_BRIEFCASE1, /*goto*/ 0x03)
|
||||
reloop(0x08)
|
||||
|
||||
|
|
@ -800,7 +800,7 @@ u8 func100f_check_mine[] = {
|
|||
|
||||
u8 func1026_uplink[] = {
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_TAXI, /*goto*/ 0x03)
|
||||
reloop(0x10)
|
||||
|
||||
|
|
@ -888,7 +888,7 @@ u8 func040d_limo[] = {
|
|||
|
||||
// Wait until not in room
|
||||
beginloop(0x2d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0002, /*goto*/ 0x03)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0010, /*goto*/ 0x03)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0012, /*goto*/ 0x03)
|
||||
|
|
@ -1131,7 +1131,7 @@ u8 func1005_check_things_destroyed[] = {
|
|||
|
||||
u8 func1006_check_for_end[] = {
|
||||
beginloop(0x05)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(0, /*goto*/ 0x03)
|
||||
reloop(0x05)
|
||||
|
||||
|
|
@ -1335,7 +1335,7 @@ u8 func0412_cia[] = {
|
|||
// Not shot, not a patroller, or patroller who has started his path
|
||||
label(0x10)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_self_flag_bankx_eq(CHRFLAG0_00004000, TRUE, BANK_0, /*goto*/ 0x37)
|
||||
call_rng
|
||||
|
|
@ -1395,7 +1395,7 @@ u8 func0412_cia[] = {
|
|||
go_to_target_pad(SPEED_WALK)
|
||||
|
||||
beginloop(0x36)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_saw_death(0x00, /*goto*/ 0x1d)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x1e)
|
||||
|
|
@ -1572,7 +1572,7 @@ u8 func0413_bugspotter[] = {
|
|||
|
||||
// Wait until player in sight (mainly)
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_LIMO_READY_TO_LEAVE, TRUE, /*goto*/ LABEL_RUN_AWAY)
|
||||
|
|
@ -1613,10 +1613,10 @@ u8 func0413_bugspotter[] = {
|
|||
goto_next(LABEL_RUN_AWAY)
|
||||
|
||||
label(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x03)
|
||||
goto_next(0x0a)
|
||||
|
|
@ -1683,10 +1683,10 @@ u8 func0413_bugspotter[] = {
|
|||
if_object_in_good_condition(OBJ_LIMO, /*goto*/ 0x03)
|
||||
goto_next(LABEL_RUN_AWAY)
|
||||
label(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x03)
|
||||
goto_next(0x04)
|
||||
|
|
@ -1701,7 +1701,7 @@ u8 func0413_bugspotter[] = {
|
|||
endloop(0x0e)
|
||||
|
||||
label(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x03)
|
||||
goto_next(0x04)
|
||||
|
|
@ -1822,7 +1822,7 @@ u8 func041d_fbi[] = {
|
|||
label(0x19)
|
||||
set_action(ACTION_SCAN, TRUE)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x04)
|
||||
goto_next(0x16)
|
||||
|
|
@ -1853,10 +1853,10 @@ u8 func041d_fbi[] = {
|
|||
beginloop(0x06)
|
||||
if_chr_distance_lt(500, /*goto*/ 0x18)
|
||||
if_target_chr_in_sight(/*goto*/ 0x18)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x18)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
endloop(0x06)
|
||||
|
||||
|
|
@ -1974,7 +1974,7 @@ u8 func041a_robot[] = {
|
|||
set_stage_flag(STAGEFLAG_ROBOT_NEAR_HOME)
|
||||
|
||||
label(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_TRIGGER_CRASH, TRUE, /*goto*/ 0x01)
|
||||
if_target_chr_in_sight(/*goto*/ 0x08)
|
||||
|
|
@ -2096,7 +2096,7 @@ u8 func041e_sealer1[] = {
|
|||
set_onshot_function(GFUNC_IDLE)
|
||||
|
||||
beginloop(0x19)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_stage_flag_eq(STAGEFLAG_CRASH_FINISHED, TRUE, /*goto*/ 0x03)
|
||||
if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x04)
|
||||
|
|
@ -2460,7 +2460,7 @@ u8 func1010_elevator_switch[] = {
|
|||
yield
|
||||
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_SWITCH, /*goto*/ 0x03)
|
||||
if_stage_flag_eq(STAGEFLAG_ELEVATOR_SEALED, TRUE, /*goto*/ 0x04)
|
||||
label(0x04)
|
||||
|
|
@ -2949,7 +2949,7 @@ u8 func0411_60f4[] = {
|
|||
|
||||
u8 func101a_msg_onlyplace[] = {
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x03)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x03)
|
||||
endloop(0x10)
|
||||
|
|
@ -2970,7 +2970,7 @@ u8 func101b_msg_blockedupdoors[] = {
|
|||
endloop(0x10)
|
||||
|
||||
beginloop(0x05)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x003a, /*goto*/ 0x03)
|
||||
endloop(0x05)
|
||||
|
||||
|
|
@ -2993,7 +2993,7 @@ u8 func101c_msg_reprogramthattaxi[] = {
|
|||
|
||||
label(0x03)
|
||||
if_stage_flag_eq(STAGEFLAG_TAXI_REPROGRAMMED, TRUE, /*goto*/ 0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x004a, /*goto*/ 0x03)
|
||||
endloop(0x05)
|
||||
|
||||
|
|
@ -3006,7 +3006,7 @@ u8 func101c_msg_reprogramthattaxi[] = {
|
|||
|
||||
u8 func101d_msg_pointofingress[] = {
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0059, /*goto*/ 0x03)
|
||||
endloop(0x10)
|
||||
|
||||
|
|
@ -3074,7 +3074,7 @@ u8 func1020_elevator_doors[] = {
|
|||
*/
|
||||
u8 func1021_check_topstairs_guy[] = {
|
||||
beginloop(0x10)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 500, OPERATOR_LESS_THAN, /*goto*/ 0x03)
|
||||
goto_next(0x04)
|
||||
label(0x03)
|
||||
|
|
@ -3097,7 +3097,7 @@ u8 func040d_limo_flags[] = {
|
|||
|
||||
// Wait until player not in certain rooms
|
||||
beginloop(0x2f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0002, /*goto*/ 0x03)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0010, /*goto*/ 0x03)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0012, /*goto*/ 0x03)
|
||||
|
|
|
|||
|
|
@ -581,7 +581,7 @@ u8 func1024_give_objects[] = {
|
|||
set_object_flag_bank0(OBJ_REMOTEMINE_COOP, OBJECTFLAG0_00100000)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_has_object(CHR_P1P2, OBJ_EQUIPMENT, /*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -599,7 +599,7 @@ u8 func1024_give_objects[] = {
|
|||
u8 func1004_reassign_ailists_during_conversation[] = {
|
||||
// Wait until player in president's room
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0055, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0056, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0057, /*goto*/ 0x06)
|
||||
|
|
@ -1121,7 +1121,7 @@ u8 func1009_check_end_level[] = {
|
|||
|
||||
u8 func100a_autopilot_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_AUTOPILOT_SWITCH, /*goto*/ 0x2d)
|
||||
goto_next(0x08)
|
||||
|
||||
|
|
@ -1678,7 +1678,7 @@ u8 func100c_cockpit_stripes[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00000040)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x06)
|
||||
if_enemy_distance_lt_and_los(2540, /*goto*/ 0x06)
|
||||
|
|
@ -2204,7 +2204,7 @@ u8 func1010_dumbwaiter1[] = {
|
|||
set_object_image(OBJ_DUMBWAITER1_SWITCH, 0x00, 0x12)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_DUMBWAITER1_SWITCH, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2265,7 +2265,7 @@ u8 func1011_dumbwaiter2[] = {
|
|||
set_object_image(OBJ_DUMBWAITER2_SWITCH, 0x00, 0x12)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_DUMBWAITER2_SWITCH, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -2436,7 +2436,7 @@ u8 func0415_cloner1[] = {
|
|||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e)
|
||||
// These rooms are the attachment area
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d)
|
||||
|
|
@ -2532,7 +2532,7 @@ u8 func0418_cloner2[] = {
|
|||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e)
|
||||
// These rooms are the attachment area
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d)
|
||||
|
|
@ -2631,7 +2631,7 @@ u8 func041b_cloner3[] = {
|
|||
|
||||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_UFO_ATTACHMENT_DAMAGED, TRUE, /*goto*/ 0x0e)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0017, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0018, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0019, /*goto*/ 0x2d)
|
||||
|
|
@ -2753,7 +2753,7 @@ u8 func041e_blonde[] = {
|
|||
|
||||
beginloop(0x75)
|
||||
label(0x2d)
|
||||
consider_coop_for_p1p2_chr(CHR_P1P2)
|
||||
chr_toggle_p1p2(CHR_P1P2)
|
||||
set_target_chr(CHR_BOND)
|
||||
if_target_chr_in_sight(/*goto*/ 0x6a)
|
||||
if_near_miss(/*goto*/ 0x6b)
|
||||
|
|
@ -2865,7 +2865,7 @@ u8 func0421_trent_waiting[] = {
|
|||
set_chr_flag_bank3(CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
|
@ -2889,7 +2889,7 @@ u8 func0420_trent_attacking[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
try_unset_chr_flag_bank3_02000000(CHR_SELF, /*goto*/ 0x2d)
|
||||
set_target_chr(CHR_PRESIDENT)
|
||||
|
|
@ -3001,7 +3001,7 @@ u8 func1013_unhide_trent_and_blondes[] = {
|
|||
hide_chr(CHR_BLONDE2)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_PRESIDENT_STARTED_RUNNING, TRUE, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3128,7 +3128,7 @@ u8 func0407_steward[] = {
|
|||
set_onshot_function(FUNC_STEWARD_SHOT)
|
||||
|
||||
beginloop(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_idle(/*goto*/ 0x2d)
|
||||
call_rng
|
||||
|
|
@ -3203,7 +3203,7 @@ u8 func0407_steward[] = {
|
|||
goto_first(0x79)
|
||||
|
||||
beginloop(0x87)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x89)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x89)
|
||||
|
|
@ -3357,7 +3357,7 @@ u8 func1016_msg_onthislevel[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 440, OPERATOR_LESS_THAN, /*goto*/ 0x06)
|
||||
goto_next(0x2d)
|
||||
|
||||
|
|
@ -3400,7 +3400,7 @@ u8 func1017_msg_gettothecockpit[] = {
|
|||
u8 func1018_msg_maybeamine[] = {
|
||||
beginloop(0x04)
|
||||
if_stage_flag_eq(STAGEFLAG_ALL_OBJECTIVES_COMPLETE, TRUE, /*goto*/ 0x0e)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_objective_complete(2, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3617,7 +3617,7 @@ u8 func101a_equipment_switch[] = {
|
|||
set_object_image(OBJ_EQUIPMENT_SWITCH, 0x00, 0x12)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_EQUIPMENT_SWITCH, /*goto*/ 0x2d)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3678,7 +3678,7 @@ u8 func101b_hoverbike_switch[] = {
|
|||
open_door(0x20)
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_door_state(0x20, DOORSTATEBIT_CLOSING, /*goto*/ 0x2d)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_HOVERBIKE_SWITCH, /*goto*/ 0x0a)
|
||||
reloop(0x09)
|
||||
|
|
|
|||
|
|
@ -1166,7 +1166,7 @@ u8 func1005_check_experiemnt_destroyed_pointless[] = {
|
|||
u8 func1006_activate_alarm[] = {
|
||||
// Wait until player is in crate room
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x003f, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1309,7 +1309,7 @@ u8 func1007_disable_pods[] = {
|
|||
u8 func1008_check_console[] = {
|
||||
// Wait for console activated or destroyed
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, OBJ_CONSOLE, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_CONSOLE, /*goto*/ 0x2c)
|
||||
if_object_in_good_condition(OBJ_CONSOLE, /*goto*/ 0x06)
|
||||
goto_next(0x08)
|
||||
label(0x06)
|
||||
|
|
@ -1383,7 +1383,7 @@ u8 func1009_check_for_exit[] = {
|
|||
u8 func100a_vertical_door_sounds[] = {
|
||||
// Wait for player to activate vertical doors
|
||||
beginloop(0x5d)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x46, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x47, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_P1P2, 0x48, /*goto*/ 0x2c)
|
||||
|
|
@ -1835,7 +1835,7 @@ u8 func100f_init_lighting[] = {
|
|||
u8 func1010_unload_part1_chrs[] = {
|
||||
// Wait until player is in room 0x0067 - probably crate room or so
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0067, /*goto*/ 0x2c)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -852,7 +852,7 @@ u8 func0407_init_cloaked_skedar[] = {
|
|||
|
||||
beginloop(0x04)
|
||||
// Wait until clone dead - which it would be immediately?
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
label(0x4f)
|
||||
if_chr_death_animation_finished(CHR_CLONE, /*goto*/ 0x4f)
|
||||
reloop(0x04)
|
||||
|
|
@ -886,7 +886,7 @@ u8 func0408_cloaked_skedar[] = {
|
|||
if_objective_complete(4, /*goto*/ 0x0e)
|
||||
|
||||
// King is alive
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 300, TARGET_PAD, /*goto*/ 0x2d)
|
||||
|
||||
// 1 in 256 chance of making skedar roar sound
|
||||
|
|
@ -919,7 +919,7 @@ u8 func0404_miniskedar_spawner[] = {
|
|||
|
||||
// Wait until player near trigger pad
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 300, TARGET_PAD, /*goto*/ 0x4f)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1065,7 +1065,7 @@ u8 func1005_5e0c[] = {
|
|||
yield
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_distance_to_pad_lt(OBJ_PUZZLEROCK, 50, 0x00d4, /*goto*/ 0x2d)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 50, 0x00d4, /*goto*/ 0x2d)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x005f, /*goto*/ 0x2e)
|
||||
|
|
@ -1440,7 +1440,7 @@ u8 func1009_altar[] = {
|
|||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0f)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_flag_bank1(OBJ_ALTAR, OBJECTFLAG1_00002000, /*goto*/ 0x2d)
|
||||
if_chr_distance_to_pad_lt(CHR_P1P2, 300, 0x0137, /*goto*/ 0x2e)
|
||||
label(0x2d)
|
||||
|
|
@ -1688,7 +1688,7 @@ u8 func0409_reaper_slayer_skedar[] = {
|
|||
kneel
|
||||
|
||||
beginloop(0x5f)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
label(0x2d)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e)
|
||||
|
|
@ -1756,7 +1756,7 @@ u8 func0409_reaper_slayer_skedar[] = {
|
|||
|
||||
label(0x6a)
|
||||
call_rng
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x06)
|
||||
if_target_chr_in_sight(/*goto*/ 0x6b)
|
||||
|
|
@ -1776,7 +1776,7 @@ u8 func0409_reaper_slayer_skedar[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x6e)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x6b)
|
||||
if_timer_gt(300, /*goto*/ 0x06)
|
||||
|
|
@ -1814,7 +1814,7 @@ u8 func100a_army_room[] = {
|
|||
set_lights_state(0x0087, 0x01, 0x06, 0x00, 0x00)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0082, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1851,7 +1851,7 @@ u8 func100a_army_room[] = {
|
|||
|
||||
u8 func100b_check_sanctum_accessed[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x007a, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1929,7 +1929,7 @@ u8 func040c_king_waiting[] = {
|
|||
set_morale(0)
|
||||
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d)
|
||||
endloop(0x08)
|
||||
|
||||
|
|
@ -1961,7 +1961,7 @@ u8 func040d_king_combat[] = {
|
|||
#define LABEL_LOW_SHIELD 0x7c
|
||||
|
||||
beginloop(0x59)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_in_disarm_range(/*goto*/ 0x03)
|
||||
if_chr_shield_lt(CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD)
|
||||
|
|
@ -1969,7 +1969,7 @@ u8 func040d_king_combat[] = {
|
|||
|
||||
// Main loop
|
||||
label(LABEL_MAINLOOP)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
try_face_entity(0x0200, 0x0000, /*goto*/ 0x04)
|
||||
|
||||
|
|
@ -2991,7 +2991,7 @@ u8 func0413_hide[] = {
|
|||
|
||||
u8 func1015_msg_specialpillars[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x91)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x92)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0035, /*goto*/ 0x93)
|
||||
|
|
@ -3039,7 +3039,7 @@ u8 func1016_msg_powersmoreconstant[] = {
|
|||
restart_timer
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0077, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3051,7 +3051,7 @@ u8 func1016_msg_powersmoreconstant[] = {
|
|||
|
||||
u8 func1017_msg_skedararmy[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0082, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3063,7 +3063,7 @@ u8 func1017_msg_skedararmy[] = {
|
|||
|
||||
u8 func1018_msg_cutoffthehead[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -816,7 +816,7 @@ u8 func0402_jonathan_waiting_for_meetup[] = {
|
|||
set_self_flag_bank3(CHRFLAG3_00080000)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
|
@ -1496,7 +1496,7 @@ u8 func0406_unused_0406[] = {
|
|||
u8 func1008_spawngroup1[] = {
|
||||
// Wait until meeting done and player in the T-junction corridor
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_MET_JON, TRUE, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -1852,7 +1852,7 @@ u8 func1009_blow_up_wall[] = {
|
|||
|
||||
u8 func100a_check_hangar_accessed[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00e7, /*goto*/ 0x06)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -1900,7 +1900,7 @@ u8 func100c_medpack_activation[] = {
|
|||
endloop(0x67)
|
||||
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_difficulty_lt(DIFF_SA, /*goto*/ 0x0c)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_HOVERBED, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
|
@ -1938,7 +1938,7 @@ u8 func100c_medpack_activation[] = {
|
|||
yield
|
||||
|
||||
beginloop(0x0c)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00df, /*goto*/ 0x32)
|
||||
endloop(0x0c)
|
||||
|
||||
|
|
@ -2030,7 +2030,7 @@ u8 func040b_elvis_follow[] = {
|
|||
|
||||
u8 func100f_terminals[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_TERMINAL1, /*goto*/ 0x08)
|
||||
if_chr_activated_object(CHR_P1P2, OBJ_TERMINAL2, /*goto*/ 0x0a)
|
||||
reloop(0x04)
|
||||
|
|
@ -2222,7 +2222,7 @@ u8 func1011_unlock_doors_when_jo_escaping[] = {
|
|||
|
||||
u8 func1012_hoverbike_auto_doors[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_JO_ESCAPE_STARTED, TRUE, /*goto*/ 0x06)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -3133,7 +3133,7 @@ u8 func1021_jo_escaping[] = {
|
|||
set_stage_flag(STAGEFLAG_TRIGGER_JETBIKE_MESSAGE)
|
||||
|
||||
beginloop(0x0a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x0014, /*goto*/ 0x06)
|
||||
endloop(0x0a)
|
||||
|
||||
|
|
@ -3288,7 +3288,7 @@ u8 func041a_init_superdragon_guard[] = {
|
|||
|
||||
u8 func101a_medpack_switch[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_object_in_good_condition(OBJ_MEDPACK_SWITCH, /*goto*/ 0x32)
|
||||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x06)
|
||||
set_stage_flag(STAGEFLAG_MEDPACK_SWITCH_DESTROYED)
|
||||
|
|
@ -3321,7 +3321,7 @@ u8 unregistered_function1[] = {
|
|||
|
||||
// Wait until player in mine room
|
||||
beginloop(0x08)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00dc, /*goto*/ 0x32)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00dd, /*goto*/ 0x32)
|
||||
endloop(0x08)
|
||||
|
|
@ -3354,7 +3354,7 @@ u8 func040f_warp_jon_to_catwalk[] = {
|
|||
u8 func101d_msg_medpackaroundhere[] = {
|
||||
beginloop(0x04)
|
||||
if_difficulty_lt(DIFF_PA, /*goto*/ 0x06)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x00d2, /*goto*/ 0x32)
|
||||
endloop(0x04)
|
||||
|
||||
|
|
@ -3391,7 +3391,7 @@ u8 func101e_msg_hookup[] = {
|
|||
|
||||
u8 func101f_msg_oil[] = {
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_JON_SAID_MAINT_HATCH, TRUE, /*goto*/ 0x32)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
|
|||
|
|
@ -1157,7 +1157,7 @@ u8 func040d_start_path37[] = {
|
|||
u8 func1002_lightswitch[] = {
|
||||
// Wait until switch activated
|
||||
beginloop(0x04)
|
||||
if_chr_activated_object(CHR_F3, OBJ_LIGHTSWITCH, /*goto*/ 0x2c)
|
||||
if_chr_activated_object(CHR_ANY, OBJ_LIGHTSWITCH, /*goto*/ 0x2c)
|
||||
reloop(0x04)
|
||||
|
||||
label(0x2c)
|
||||
|
|
@ -1303,7 +1303,7 @@ u8 func0411_cass_in_office[] = {
|
|||
animation(0x00a0, 0, 193, 0x18, 0x10, CHR_SELF, 2)
|
||||
|
||||
beginloop(0x54)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x55)
|
||||
endloop(0x54)
|
||||
|
|
@ -1340,7 +1340,7 @@ u8 func0411_cass_in_office[] = {
|
|||
|
||||
// Wait until player in disarm range
|
||||
beginloop(0x5a)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_in_disarm_range(/*goto*/ 0x83)
|
||||
reloop(0x5a)
|
||||
|
|
@ -1417,7 +1417,7 @@ u8 func0413_cass_running[] = {
|
|||
stop_chr
|
||||
|
||||
beginloop(0x09)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x2c)
|
||||
endloop(0x09)
|
||||
|
|
@ -1505,7 +1505,7 @@ u8 func1006_lift_disabling[] = {
|
|||
|
||||
// Wait until player Y above -4300
|
||||
beginloop(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -4300, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x06)
|
||||
label(0x2c)
|
||||
|
|
@ -1573,7 +1573,7 @@ u8 func0415_chief[] = {
|
|||
|
||||
// Wait until player in sight
|
||||
beginloop(0x03)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x06)
|
||||
if_target_chr_in_sight(/*goto*/ 0x2c)
|
||||
|
|
@ -1602,7 +1602,7 @@ u8 func100f_disable_chiefs_lift[] = {
|
|||
|
||||
// Wait until player above -4400
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -4400, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x06)
|
||||
label(0x2c)
|
||||
|
|
@ -1636,7 +1636,7 @@ u8 func100f_disable_chiefs_lift[] = {
|
|||
u8 func1007_bomb_logic[] = {
|
||||
// Wait until in lab elevator and has bomb equipped
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_in_room(CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x2c)
|
||||
reloop(0x04)
|
||||
|
||||
|
|
@ -1731,7 +1731,7 @@ u8 func1008_check_bomb_unplantable[] = {
|
|||
// Door is closed
|
||||
label(0xb2)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_stage_flag_eq(STAGEFLAG_BOMB_PLANTED, TRUE, /*goto*/ 0x0d)
|
||||
if_chr_in_room(CHR_BOND, 0x00, 0x002b, /*goto*/ 0x06)
|
||||
if_chr_in_room(CHR_COOP, 0x00, 0x002b, /*goto*/ 0x06)
|
||||
|
|
@ -1778,7 +1778,7 @@ u8 func1009_toggle_top_guards[] = {
|
|||
|
||||
// Wait until player above -4100
|
||||
beginloop(0x04)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, -4100, OPERATOR_LESS_THAN, /*goto*/ 0x2c)
|
||||
goto_next(0x06)
|
||||
label(0x2c)
|
||||
|
|
@ -1837,7 +1837,7 @@ u8 func100a_check_for_completion[] = {
|
|||
|
||||
// Wait until player at helipad
|
||||
label(0x2c)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_y(CHR_P1P2, 0, OPERATOR_LESS_THAN, /*goto*/ 0x2d)
|
||||
|
||||
// Wait 1 second
|
||||
|
|
@ -1889,7 +1889,7 @@ u8 func100b_start_lifts[] = {
|
|||
u8 func100c_lift_doors[] = {
|
||||
// Wait until player activated a lift door
|
||||
beginloop(0xc1)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_activated_object(CHR_P1P2, 0x57, /*goto*/ 0xb1)
|
||||
if_chr_activated_object(CHR_P1P2, 0x58, /*goto*/ 0xb1)
|
||||
if_chr_activated_object(CHR_P1P2, 0x59, /*goto*/ 0xb1)
|
||||
|
|
|
|||
|
|
@ -50201,37 +50201,37 @@ glabel chrResolveId
|
|||
//{
|
||||
// if (ref) {
|
||||
// switch (id) {
|
||||
// case 0xfa:
|
||||
// case CHR_SEESHOT:
|
||||
// id = ref->chrseeshot;
|
||||
// break;
|
||||
// case 0xfb:
|
||||
// case CHR_SEEDIE:
|
||||
// id = ref->chrseedie;
|
||||
// break;
|
||||
// case 0xfc:
|
||||
// case CHR_PRESET:
|
||||
// id = ref->chrpreset1;
|
||||
// break;
|
||||
// case 0xfd:
|
||||
// case CHR_SELF:
|
||||
// id = ref->chrnum;
|
||||
// break;
|
||||
// case 0xf9:
|
||||
// case CHR_CLONE:
|
||||
// id = ref->chrdup;
|
||||
// break;
|
||||
// case 0xf8:
|
||||
// case CHR_BOND:
|
||||
// if (g_Vars.bond && g_Vars.bond->targetpos && g_Vars.bond->targetpos->chr) {
|
||||
// id = g_Vars.bond->targetpos->chr->chrnum;
|
||||
// }
|
||||
// break;
|
||||
// case 0xf5:
|
||||
// case CHR_COOP:
|
||||
// if (g_Vars.coop && g_Vars.coop->targetpos && g_Vars.coop->targetpos->chr) {
|
||||
// id = g_Vars.coop->targetpos->chr->chrnum;
|
||||
// }
|
||||
// break;
|
||||
// case 0xf4:
|
||||
// case CHR_ANTI:
|
||||
// if (g_Vars.anti && g_Vars.anti->targetpos && g_Vars.anti->targetpos->chr) {
|
||||
// id = g_Vars.anti->targetpos->chr->chrnum;
|
||||
// }
|
||||
// break;
|
||||
// case 0xf2:
|
||||
// case CHR_P1P2:
|
||||
// {
|
||||
// u32 index = g_Vars.coopplayernum >= 0 ? ref->p1p2 : g_Vars.bondplayernum;
|
||||
// struct player *player = g_Vars.players[index];
|
||||
|
|
@ -50240,7 +50240,7 @@ glabel chrResolveId
|
|||
// }
|
||||
// }
|
||||
// break;
|
||||
// case 0xf1:
|
||||
// case CHR_P1P2_OPPOSITE:
|
||||
// if (g_Vars.coopplayernum >= 0) {
|
||||
// struct player *player = g_Vars.players[1 - ref->p1p2];
|
||||
// if (player && player->targetpos && player->targetpos->chr) {
|
||||
|
|
@ -50248,7 +50248,7 @@ glabel chrResolveId
|
|||
// }
|
||||
// }
|
||||
// break;
|
||||
// case 0xf6:
|
||||
// case CHR_TARGET:
|
||||
// {
|
||||
// struct position *target = chrGetTargetPosition(ref);
|
||||
// if ((target->unk00 == 3 || target->unk00 == 6) && target->chr) {
|
||||
|
|
@ -50259,22 +50259,22 @@ glabel chrResolveId
|
|||
// }
|
||||
// } else { // ref is NULL
|
||||
// switch (id) {
|
||||
// case 0xf8:
|
||||
// case CHR_BOND:
|
||||
// if (g_Vars.bond && g_Vars.bond->targetpos && g_Vars.bond->targetpos->chr) {
|
||||
// id = g_Vars.bond->targetpos->chr->chrnum;
|
||||
// }
|
||||
// break;
|
||||
// case 0xf5:
|
||||
// case CHR_COOP:
|
||||
// if (g_Vars.coop && g_Vars.coop->targetpos && g_Vars.coop->targetpos->chr) {
|
||||
// id = g_Vars.coop->targetpos->chr->chrnum;
|
||||
// }
|
||||
// break;
|
||||
// case 0xf4:
|
||||
// case CHR_ANTI:
|
||||
// if (g_Vars.anti && g_Vars.anti->targetpos && g_Vars.anti->targetpos->chr) {
|
||||
// id = g_Vars.anti->targetpos->chr->chrnum;
|
||||
// }
|
||||
// break;
|
||||
// case 0xf2: // P1/P2
|
||||
// case CHR_P1P2:
|
||||
// {
|
||||
// struct player *player = g_Vars.players[g_Vars.bondplayernum];
|
||||
// if (player && player->targetpos && player->targetpos->chr) {
|
||||
|
|
@ -50282,7 +50282,7 @@ glabel chrResolveId
|
|||
// }
|
||||
// }
|
||||
// break;
|
||||
// case 0xf1: // P1/P2 inverse?
|
||||
// case CHR_P1P2_OPPOSITE:
|
||||
// if (g_Vars.coopplayernum >= 0) {
|
||||
// struct player *player = g_Vars.players[g_Vars.coopplayernum];
|
||||
// if (player && player->targetpos && player->targetpos->chr) {
|
||||
|
|
|
|||
|
|
@ -3252,7 +3252,7 @@ glabel aiIfChrActivatedObject
|
|||
// bool pass = false;
|
||||
//
|
||||
// if (obj && obj->pos) {
|
||||
// if (cmd[2] == CHR_F3) {
|
||||
// if (cmd[2] == CHR_ANY) {
|
||||
// if (obj->hidden & (OBJHIDDENFLAG_ACTIVATED_BY_BOND | OBJHIDDENFLAG_ACTIVATED_BY_COOP)) {
|
||||
// pass = true;
|
||||
// obj->hidden &= ~(OBJHIDDENFLAG_ACTIVATED_BY_BOND | OBJHIDDENFLAG_ACTIVATED_BY_COOP);
|
||||
|
|
@ -13618,7 +13618,7 @@ bool aiToggleP1P2(void)
|
|||
/**
|
||||
* @cmd 01b5
|
||||
*/
|
||||
bool ai01b5(void)
|
||||
bool aiChrSetP1P2(void)
|
||||
{
|
||||
u8 *cmd = g_Vars.ailist + g_Vars.aioffset;
|
||||
|
||||
|
|
|
|||
|
|
@ -1770,7 +1770,14 @@
|
|||
mkshort(0x01b2), \
|
||||
value,
|
||||
|
||||
#define consider_coop_for_p1p2_chr(chr) \
|
||||
/**
|
||||
* Toggle which player (Bond or Coop) is referenced by the chr's CHR_P1P2
|
||||
* identifier. This should be called inside a loop to give the illusion of
|
||||
* referencing both players.
|
||||
*
|
||||
* This is safe to use in solo mode; it will not set it to coop if they don't exist.
|
||||
*/
|
||||
#define chr_toggle_p1p2(chr) \
|
||||
mkshort(0x01b3), \
|
||||
chr,
|
||||
|
||||
|
|
@ -1778,6 +1785,11 @@
|
|||
mkshort(0x01b4), \
|
||||
label,
|
||||
|
||||
#define chr_set_p1p2(chr, p1p2_chr) \
|
||||
mkshort(0x01b5), \
|
||||
chr, \
|
||||
p1p2_chr,
|
||||
|
||||
#define enable_snow(bool) \
|
||||
mkshort(0x01b6), \
|
||||
bool,
|
||||
|
|
|
|||
|
|
@ -82,16 +82,18 @@
|
|||
#define CHANNEL_9 9
|
||||
#define CHANNEL_10 10
|
||||
|
||||
#define CHR_P1P2 0xf2
|
||||
#define CHR_F3 0xf3
|
||||
#define CHR_ANTI 0xf4
|
||||
#define CHR_COOP 0xf5
|
||||
#define CHR_TARGET 0xf6
|
||||
#define CHR_BOND 0xf8
|
||||
#define CHR_CLONE 0xf9
|
||||
#define CHR_SEEDIE 0xfb
|
||||
#define CHR_PRESET 0xfc
|
||||
#define CHR_SELF 0xfd
|
||||
#define CHR_P1P2_OPPOSITE 0xf1
|
||||
#define CHR_P1P2 0xf2
|
||||
#define CHR_ANY 0xf3 // Only supported by if_chr_activated_object command
|
||||
#define CHR_ANTI 0xf4
|
||||
#define CHR_COOP 0xf5
|
||||
#define CHR_TARGET 0xf6
|
||||
#define CHR_BOND 0xf8
|
||||
#define CHR_CLONE 0xf9
|
||||
#define CHR_SEESHOT 0xfa
|
||||
#define CHR_SEEDIE 0xfb
|
||||
#define CHR_PRESET 0xfc
|
||||
#define CHR_SELF 0xfd
|
||||
|
||||
// Character flags - bank 0 (chr struct offset 0x114 - chr->flags)
|
||||
#define CHRFLAG0_CANT_ALERT_GROUP 0x00000001 // Don't set group alertness when becoming aware
|
||||
|
|
|
|||
|
|
@ -400,7 +400,7 @@
|
|||
/*0x01b2*/ bool ai01b2(void);
|
||||
/*0x01b3*/ bool aiToggleP1P2(void);
|
||||
/*0x01b4*/ bool ai01b4(void);
|
||||
/*0x01b5*/ bool ai01b5(void);
|
||||
/*0x01b5*/ bool aiChrSetP1P2(void);
|
||||
/*0x01b6*/ bool aiConfigureSnow(void);
|
||||
/*0x01b7*/ bool aiChrSetCloaked(void);
|
||||
/*0x01b8*/ bool aiSetAutogunType(void);
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ u8 func0006_unalerted[] = {
|
|||
set_action(ACTION_SCAN, TRUE)
|
||||
yield
|
||||
dprint 'S','2',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0x13)
|
||||
if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x16)
|
||||
|
|
@ -540,7 +540,7 @@ u8 func0006_unalerted[] = {
|
|||
dprint 'S','9',0,
|
||||
dprint 'W','A','L','K','I','N','G','\n',0,
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x16)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x13)
|
||||
if_target_chr_in_sight(/*goto*/ 0x16)
|
||||
|
|
@ -562,7 +562,7 @@ u8 func0006_unalerted[] = {
|
|||
dprint 'E','X','A','M',' ','B','O','D','Y','\n',0,
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x16)
|
||||
set_hear_distance(10000)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_hears_gunfire(/*goto*/ 0x16)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x13)
|
||||
|
|
@ -1178,12 +1178,12 @@ u8 func0007_alerted[] = {
|
|||
goto_next(0xef)
|
||||
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_target_eq(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_in_disarm_range(/*goto*/ 0x9a)
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0xef)
|
||||
endloop(0x03)
|
||||
|
|
@ -1215,7 +1215,7 @@ u8 func0007_alerted[] = {
|
|||
dprint 'A','M','B','1','\n',0,
|
||||
if_distance_from_target_to_pad_lt(200, TARGET_PAD, /*goto*/ 0x13)
|
||||
dprint 'A','M','B','2','\n',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_enemy_distance_lt_and_los(1200, /*goto*/ 0xee)
|
||||
endloop(0xa2)
|
||||
|
|
@ -1265,7 +1265,7 @@ u8 func0007_alerted[] = {
|
|||
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xa9)
|
||||
|
||||
beginloop(0xa9)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_near_miss(/*goto*/ 0x13)
|
||||
if_shot_near_chr(0x00, /*goto*/ 0x13)
|
||||
|
|
@ -1347,12 +1347,12 @@ u8 func0007_alerted[] = {
|
|||
goto_next(0xef)
|
||||
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_target_eq(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_in_disarm_range(/*goto*/ 0x13)
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0xef)
|
||||
goto_first(LABEL_SNIPE)
|
||||
|
|
@ -1531,7 +1531,7 @@ u8 func0007_alerted[] = {
|
|||
|
||||
beginloop(0x59)
|
||||
cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x5f)
|
||||
if_timer_gt(240, /*goto*/ 0x61)
|
||||
|
|
@ -1885,13 +1885,13 @@ u8 func0007_alerted[] = {
|
|||
goto_next(0xef)
|
||||
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_target_eq(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x42)
|
||||
if_chr_in_view(/*goto*/ 0x42)
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0xef)
|
||||
if_timer_gt(240, /*goto*/ 0x49)
|
||||
|
|
@ -1921,12 +1921,12 @@ u8 func0007_alerted[] = {
|
|||
if_chr_target_eq(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee)
|
||||
goto_next(0xef)
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
if_chr_target_eq(CHR_SELF, CHR_P1P2, FALSE, /*goto*/ 0xee)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_within_units_of_sight(30, /*goto*/ 0x42)
|
||||
label(0xee)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
label(0xef)
|
||||
if_timer_gt(600, /*goto*/ 0x3d)
|
||||
|
|
@ -2178,7 +2178,7 @@ u8 func0007_alerted[] = {
|
|||
set_function(CHR_SELF, GFUNC_HAND_COMBAT)
|
||||
|
||||
label(0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_distance_gt(1300, /*goto*/ 0x13)
|
||||
if_self_flag_bankx_eq(CHRFLAG1_01000000, TRUE, BANK_1, /*goto*/ 0x16)
|
||||
|
|
@ -2491,7 +2491,7 @@ u8 func0007_alerted[] = {
|
|||
|
||||
beginloop(0x6e)
|
||||
cmd013d_if_grenade_thrown_nearby_maybe(ACTION_GRENADE_STOP, /*goto*/ LABEL_FLEE_GRENADE)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_distance_lt(3000, /*goto*/ 0x6f)
|
||||
endloop(0x6e)
|
||||
|
|
@ -2514,7 +2514,7 @@ u8 func0007_alerted[] = {
|
|||
beginloop(0x71)
|
||||
if_chr_dying(CHR_SELF, /*goto*/ 0x88)
|
||||
if_timer_gt(300, /*goto*/ 0x16)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_in_view(/*goto*/ 0x72)
|
||||
if_bitcheck_in_position_struct(/*goto*/ 0x13)
|
||||
|
|
@ -2696,7 +2696,7 @@ u8 func000a_do_idle_animation[] = {
|
|||
|
||||
// Nothing jumps to here or below
|
||||
beginloop(0x15)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x13)
|
||||
if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x16)
|
||||
|
|
@ -3515,7 +3515,7 @@ u8 func000e_see_then_attack[] = {
|
|||
set_onshot_function(GFUNC_ALERTED)
|
||||
|
||||
beginloop(0x0c)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_chr_sees_player(/*goto*/ 0x16)
|
||||
endloop(0x0c)
|
||||
|
|
@ -4153,7 +4153,7 @@ u8 func001b_observe_camspy[] = {
|
|||
beginloop(0x0c)
|
||||
if_timer_gt(60, /*goto*/ 0x0b)
|
||||
if_chr_distance_lt(300, /*goto*/ 0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0b)
|
||||
|
|
@ -4173,7 +4173,7 @@ u8 func001b_observe_camspy[] = {
|
|||
beginloop(0x03)
|
||||
if_timer_gt(300, /*goto*/ 0x04)
|
||||
if_chr_distance_gt(400, /*goto*/ 0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0b)
|
||||
|
|
@ -4195,7 +4195,7 @@ u8 func001b_observe_camspy[] = {
|
|||
if_chr_idle(/*goto*/ 0x13)
|
||||
if_timer_gt(300, /*goto*/ 0x06)
|
||||
label(0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x16)
|
||||
if_target_chr_in_sight(/*goto*/ 0x0b)
|
||||
|
|
@ -4291,7 +4291,7 @@ u8 func001d_search_for_player[] = {
|
|||
|
||||
beginloop(0x03)
|
||||
dprint 'S','E','A','R','C','H','I','N','I','T','\n',0,
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_target_chr_in_sight(/*goto*/ 0x12)
|
||||
if_self_flag_bankx_eq(CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x13)
|
||||
|
|
@ -4319,7 +4319,7 @@ u8 func001d_search_for_player[] = {
|
|||
goto_next(0x05)
|
||||
|
||||
label(0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_player_looking_at_something_maybe(0x00, 0x00, 0x01, /*goto*/ 0x15)
|
||||
if_target_chr_in_sight(/*goto*/ 0x12)
|
||||
|
|
@ -4384,7 +4384,7 @@ u8 func001d_search_for_player[] = {
|
|||
if_self_flag_bankx_eq(CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13)
|
||||
if_chr_distance_lt(500, /*goto*/ 0x13)
|
||||
label(0x13)
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
dprint '1','\n',0,
|
||||
if_timer_gt(600, /*goto*/ 0x0b)
|
||||
|
|
@ -4470,7 +4470,7 @@ u8 func001f_related_to_spawning[] = {
|
|||
label(0x1a)
|
||||
set_action(ACTION_SCAN, TRUE)
|
||||
yield
|
||||
consider_coop_for_p1p2_chr(CHR_SELF)
|
||||
chr_toggle_p1p2(CHR_SELF)
|
||||
set_target_chr(CHR_P1P2)
|
||||
if_alertness(100, OPERATOR_LESS_THAN, /*goto*/ 0x16)
|
||||
goto_next(0x78)
|
||||
|
|
|
|||
|
|
@ -14569,7 +14569,7 @@ bool (*g_CommandPointers[])(void) = {
|
|||
/*0x01b2*/ ai01b2,
|
||||
/*0x01b3*/ aiToggleP1P2,
|
||||
/*0x01b4*/ ai01b4,
|
||||
/*0x01b5*/ ai01b5,
|
||||
/*0x01b5*/ aiChrSetP1P2,
|
||||
/*0x01b6*/ aiConfigureSnow,
|
||||
/*0x01b7*/ aiChrSetCloaked,
|
||||
/*0x01b8*/ aiSetAutogunType,
|
||||
|
|
|
|||
Loading…
Reference in New Issue