diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index 74d44ed7e..b2596022f 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -1259,7 +1259,7 @@ u8 func040f_cass[] = { stop_chr yield unset_stage_flag(STAGEFLAG_SECETARY_SAW_JO_OR_COOP) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x5b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x5b) beginloop(0x5b) if_chr_stopped(/*goto*/ 0x5c) @@ -1290,7 +1290,7 @@ u8 func040f_cass[] = { // Face target again label(0x06) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x64) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x64) beginloop(0x64) if_target_in_fov_left(10, /*goto*/ 0x65) @@ -1363,7 +1363,7 @@ u8 func040f_cass[] = { label(0x06) restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0042, /*goto*/ 0xb8) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0042, /*goto*/ 0xb8) beginloop(0xb8) if_timer_gt(60, /*goto*/ 0x63) @@ -1397,13 +1397,13 @@ u8 func040f_cass[] = { label(0x6b) stop_chr yield - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x6c) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x6c) beginloop(0x6c) call_rng if_rand_lt(250, /*goto*/ 0x06) stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x2c) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x2c) label(0x2c) call_rng if_distance_to_target_gt(500, /*goto*/ 0x06) @@ -1479,7 +1479,7 @@ u8 func0411_secretary[] = { endloop(0x7a) label(0x7b) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x7c) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x7c) beginloop(0x7c) if_timer_lt(80, /*goto*/ 0x2c) @@ -1523,7 +1523,7 @@ u8 func0411_secretary[] = { goto_next(0x81) // Unreachable - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x7f) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x7f) beginloop(0x7f) if_target_in_fov_left(10, /*goto*/ 0x81) @@ -1732,7 +1732,7 @@ u8 func0414_programmer[] = { restart_timer set_alertness(255) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x9a) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x9a) beginloop(0x9a) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -1831,7 +1831,7 @@ u8 func0414_programmer[] = { speak(CHR_TARGET, L_AME_071, MP3_0323, CHANNEL_3, COLOR_09_BLUE) // "Move it!" label(0x06) set_stage_flag(STAGEFLAG_TALKED_TO_PROGRAMMER) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x9b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x9b) beginloop(0x9b) if_stage_flag_eq(STAGEFLAG_TALKED_TO_PROGRAMMER, TRUE, /*goto*/ 0x06) diff --git a/src/files/setup/setupark.c b/src/files/setup/setupark.c index a54336c51..fd08e7157 100644 --- a/src/files/setup/setupark.c +++ b/src/files/setup/setupark.c @@ -831,7 +831,7 @@ u8 func040f_top_guard[] = { endloop(0x21) label(0x00) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x1f) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x1f) beginloop(0x1f) if_distance_to_target_lt(200, /*goto*/ 0x20) @@ -929,7 +929,7 @@ u8 func0406_general_combat[] = { label(0x14) if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x00) label(0x20) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x10) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x10) label(0x00) kneel @@ -1000,7 +1000,7 @@ u8 func0406_general_combat[] = { say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) label(0x20) if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x17) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x12) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x12) goto_next(0x13) beginloop(0x12) @@ -1059,10 +1059,10 @@ u8 func0406_general_combat[] = { goto_first(0x15) label(0x17) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x16) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x00) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x00) goto_next(0x20) label(0x00) goto_first(0x12) @@ -1209,7 +1209,7 @@ u8 func0408_hovercopter[] = { // Low shooting label(0x43) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x44) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x44) goto_first(0x22) label(0x44) @@ -1236,7 +1236,7 @@ u8 func0408_hovercopter[] = { // Mid shooting label(0x48) dprint 'S','H','O','O','T',' ','M','I','D','\n',0, - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x49) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x49) goto_first(0x24) label(0x49) @@ -1262,7 +1262,7 @@ u8 func0408_hovercopter[] = { // High shooting (roof) label(0x4d) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x00) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x00) label(0x00) set_stage_flag(STAGEFLAG_HOVERCOPTER_ON_ROOF) if_stage_flag_eq(STAGEFLAG_SAID_FINAL_WARNING, TRUE, /*goto*/ 0x20) @@ -1277,7 +1277,7 @@ u8 func0408_hovercopter[] = { endloop(0x29) label(0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x00) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x00) goto_first(0x26) label(0x00) @@ -2094,7 +2094,7 @@ u8 func040d_cass[] = { dprint 'M','O','V','E',' ','F','A','I','L','\n',0, label(0x00) dprint 'M','O','V','E',' ','G','O','O','D','\n',0, - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x20) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x20) label(0x20) set_ailist(CHR_SELF, GAILIST_IDLE) endlist diff --git a/src/files/setup/setupate.c b/src/files/setup/setupate.c index f1db22635..147c98274 100644 --- a/src/files/setup/setupate.c +++ b/src/files/setup/setupate.c @@ -421,9 +421,9 @@ u8 func0402_guard_combat[] = { // 2 seconds have passed without seeing guard, or guard has been shot label(0x06) if_chr_dead(CHR_TARGET, /*goto*/ 0x2e) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2d) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2d) label(0x2d) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0c) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c) beginloop(0x0c) if_chr_stopped(/*goto*/ 0x06) @@ -464,10 +464,10 @@ u8 func0403_jon_combat[] = { reloop(0x08) label(0x06) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2d) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2d) label(0x2d) try_attack_roll(/*goto*/ 0x0c) - try_attack_kneel(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0c) + try_attack_kneel(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c) beginloop(0x0c) if_chr_stopped(/*goto*/ 0x06) @@ -503,9 +503,9 @@ u8 func0404_trent_combat[] = { // Attack label(0x06) if_chr_dead(CHR_TARGET, /*goto*/ 0x2e) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2d) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2d) label(0x2d) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0c) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c) beginloop(0x0c) if_chr_stopped(/*goto*/ 0x06) diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index a58750607..e586f942f 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -1339,7 +1339,7 @@ u8 func0418_robot[] = { set_target_chr(CHR_P1P2) restart_timer dprint 'P','A','R','T',' ','3','a','\n',0, - try_attack_stand(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0e) + try_attack_stand(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0e) goto_first(0x04) beginloop(0x0e) @@ -1748,10 +1748,10 @@ u8 func041f_trent_shooting[] = { label(0x08) label(0xa8) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xa7) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xa7) label(0xa7) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) goto_next(0x31) // Shoot worked diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 66a9a8398..7b2a13383 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -1229,7 +1229,7 @@ u8 func0407_stewardess[] = { // Saw player label(0x04) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x05) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x05) beginloop(0x05) if_target_in_fov_left(10, /*goto*/ 0x02) @@ -1526,7 +1526,7 @@ u8 func0408_secretary[] = { // Joanna within 14 units (?) of distance label(0x02) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x05) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x05) beginloop(0x05) if_target_in_fov_left(10, /*goto*/ 0x02) @@ -2118,7 +2118,7 @@ u8 func0409_office1[] = { // Picked up briefcase label(0x02) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) beginloop(0x0b) if_sound_finished(CHANNEL_4, /*goto*/ 0x31) @@ -2145,7 +2145,7 @@ u8 func0409_office1[] = { label(0x07) object_do_animation(0x025a, 0xff, 0x02, 0xffff) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x05) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x05) beginloop(0x05) if_target_in_fov_left(10, /*goto*/ 0x02) @@ -2226,7 +2226,7 @@ u8 func040a_office2[] = { label(0x02) object_do_animation(0x025a, 0xff, 0x02, 0xffff) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x05) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x05) // Wait for other guy to finish talking beginloop(0x05) @@ -2505,7 +2505,7 @@ u8 func040f_nsa[] = { label(0x04) restart_timer restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x02) @@ -2625,7 +2625,7 @@ u8 func0411_takeover_lackey[] = { goto_next(0x02) label(0x31) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x02) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x02) label(0x02) if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x31) if_target_in_sight(/*goto*/ 0x02) @@ -2640,9 +2640,9 @@ u8 func0411_takeover_lackey[] = { if_chr_death_animation_finished(0x0c, /*goto*/ 0x02) if_chr_knockedout(0x0c, /*goto*/ 0x02) set_target_chr(0x0c) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x31) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x31) label(0x31) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x04) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x04) beginloop(0x04) if_chr_stopped(/*goto*/ 0x02) @@ -2743,7 +2743,7 @@ u8 func0414_officeworker[] = { label(0x02) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x78) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x78) beginloop(0x78) if_target_in_fov_left(10, /*goto*/ 0x02) @@ -3414,7 +3414,7 @@ u8 func0419_ba8c[] = { label(0x0f) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) label(0x08) yield if_target_in_fov_left(10, /*goto*/ 0x02) diff --git a/src/files/setup/setupdam.c b/src/files/setup/setupdam.c index 225653f0d..e782f4610 100644 --- a/src/files/setup/setupdam.c +++ b/src/files/setup/setupdam.c @@ -1576,7 +1576,7 @@ u8 func040d_labtech3[] = { u8 func0411_labtech_alerted[] = { restart_timer label(0x0b) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0c) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c) beginloop(0x0c) if_target_in_fov_left(10, /*goto*/ 0x04) @@ -2220,9 +2220,9 @@ u8 func0404_angry_pilot[] = { goto_first(0x00) label(0x07) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x04) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x04) label(0x04) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x6e) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x6e) beginloop(0x6e) if_chr_stopped(/*goto*/ 0x07) diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index a88725c77..b77af9256 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -2315,9 +2315,9 @@ u8 func0412_cloak_guard[] = { set_chr_cloaked(CHR_SELF, FALSE, TRUE) label(0x0a) label(0x2c) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2c) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2c) label(0x2c) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) beginloop(0x0b) if_chr_stopped(/*goto*/ 0x0c) diff --git a/src/files/setup/setupdish.c b/src/files/setup/setupdish.c index ee980652b..ec7aaab7a 100644 --- a/src/files/setup/setupdish.c +++ b/src/files/setup/setupdish.c @@ -591,7 +591,7 @@ u8 func041e_colleague[] = { restart_timer label(0x08) if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -620,7 +620,7 @@ u8 func041e_colleague[] = { label(0x06) restart_timer stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x59) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x59) beginloop(0x59) if_target_in_sight(/*goto*/ 0x06) @@ -2464,7 +2464,7 @@ u8 func0429_grimshaw_disguise[] = { restart_timer label(0x08) if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_stage_flag_eq(STAGEFLAG_DEVICE_ABORTING, TRUE, /*goto*/ 0x0d) @@ -2656,7 +2656,7 @@ u8 func042a_carrington_cloak[] = { restart_timer label(0x08) if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x06) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -2923,7 +2923,7 @@ u8 func042c_carrington_tour[] = { set_returnlist(CHR_SELF, AILIST_CARRINGTON_TOUR) set_self_chrflag(CHRCFLAG_00040000) restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0054, /*goto*/ 0x04) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0054, /*goto*/ 0x04) beginloop(0x04) dprint 'F','A','C','E',' ','P','A','D',0, @@ -2977,7 +2977,7 @@ u8 func042c_carrington_tour[] = { label(0x06) stop_chr restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0068, /*goto*/ 0x5c) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0068, /*goto*/ 0x5c) beginloop(0x5c) if_timer_lt(60, /*goto*/ 0x06) @@ -3029,7 +3029,7 @@ u8 func042c_carrington_tour[] = { label(0x06) restart_timer - try_face_entity(ENTITYTYPE_CHR, 0x01, /*goto*/ 0x65) + try_face_entity(ATTACKFLAG_AIMATCHR, 0x01, /*goto*/ 0x65) beginloop(0x65) if_timer_gt(40, /*goto*/ 0x06) @@ -3121,7 +3121,7 @@ u8 func042c_carrington_tour[] = { label(0x06) restart_timer - try_face_entity(ENTITYTYPE_CHR, 0x01, /*goto*/ 0x70) + try_face_entity(ATTACKFLAG_AIMATCHR, 0x01, /*goto*/ 0x70) beginloop(0x70) if_timer_gt(40, /*goto*/ 0x06) @@ -3174,7 +3174,7 @@ u8 func042c_carrington_tour[] = { label(0x06) restart_timer set_target_chr(CHR_BOND) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x79) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x79) beginloop(0x79) if_timer_gt(120, /*goto*/ 0x2f) @@ -3206,7 +3206,7 @@ u8 func042d_unused[] = { set_alertness(1) set_self_chrflag(CHRCFLAG_00040000) restart_timer - try_face_entity(ENTITYTYPE_CHR, CHR_CARRINGTON, /*goto*/ 0x5f) + try_face_entity(ATTACKFLAG_AIMATCHR, CHR_CARRINGTON, /*goto*/ 0x5f) beginloop(0x5f) if_timer_gt(40, /*goto*/ 0x06) @@ -3235,7 +3235,7 @@ u8 func042e_devicegirl_reply_to_carrington[] = { set_alertness(1) set_self_chrflag(CHRCFLAG_00040000) restart_timer - try_face_entity(ENTITYTYPE_CHR, CHR_CARRINGTON, /*goto*/ 0x5f) + try_face_entity(ATTACKFLAG_AIMATCHR, CHR_CARRINGTON, /*goto*/ 0x5f) beginloop(0x5f) if_timer_gt(40, /*goto*/ 0x06) @@ -4549,7 +4549,7 @@ u8 func0404_holo4_guard2[] = { set_ailist(CHR_SELF, GAILIST_IDLE) label(0x06) if_distance_to_target_lt(500, /*goto*/ 0x2f) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) beginloop(0x08) if_distance_to_target_lt(500, /*goto*/ 0x2f) @@ -4809,7 +4809,7 @@ u8 func0407_holo5_guard1[] = { label(0x06) if_distance_to_target_lt(300, /*goto*/ 0x2f) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) beginloop(0x08) if_distance_to_target_lt(300, /*goto*/ 0x2f) @@ -4866,7 +4866,7 @@ u8 func0409_holo5_guard2[] = { label(0x06) label(0x09) set_self_chrflag(CHRCFLAG_INVINCIBLE) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) beginloop(0x0a) if_can_see_target(/*goto*/ 0x06) @@ -5248,7 +5248,7 @@ u8 func0416_holo_guard_unarmed_alert2[] = { if_target_in_fov_left(10, /*goto*/ 0x06) if_target_out_of_fov_left(246, /*goto*/ 0x06) stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_chr_dead(CHR_TARGET, /*goto*/ 0x57) @@ -5604,14 +5604,14 @@ u8 func0419_holo_guard_armed_alert[] = { set_ailist(CHR_SELF, AILIST_HOLO_GUARD_UNARMED_ALERT) label(0x2f) label(0x8f) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x04) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x04) beginloop(0x04) if_can_see_attack_target(/*goto*/ 0x2f) endloop(0x04) label(0x2f) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) beginloop(0x08) if_chr_injured_target(CHR_SELF, /*goto*/ 0x2f) diff --git a/src/files/setup/setupear.c b/src/files/setup/setupear.c index fee484f45..a8aae2081 100644 --- a/src/files/setup/setupear.c +++ b/src/files/setup/setupear.c @@ -1020,7 +1020,7 @@ u8 func0404_scientist[] = { label(0x06) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) @@ -1204,7 +1204,7 @@ u8 func0406_nasty_scientist[] = { label(0x13) label(0x08) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_sound_finished(CHANNEL_6, /*goto*/ 0x2f) @@ -2862,9 +2862,9 @@ u8 func0402_k7_guard[] = { endloop(0x04) label(0x06) - try_attack_stand(ENTITYTYPE_PAD | ENTITYTYPE_AIMONLY, 0x0159, /*goto*/ 0x2f) + try_attack_stand(ATTACKFLAG_AIMATPAD | ATTACKFLAG_AIMONLY, 0x0159, /*goto*/ 0x2f) label(0x2f) - try_modify_attack(ENTITYTYPE_PAD, 0x0159, /*goto*/ 0x2f) + try_modify_attack(ATTACKFLAG_AIMATPAD, 0x0159, /*goto*/ 0x2f) label(0x2f) say_quip(CHR_BOND, QUIP_ATTACK1, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00) diff --git a/src/files/setup/setupeld.c b/src/files/setup/setupeld.c index 84b967442..fa2a349c6 100644 --- a/src/files/setup/setupeld.c +++ b/src/files/setup/setupeld.c @@ -1500,7 +1500,7 @@ u8 func0402_taker[] = { label(0x06) set_target_chr(CHR_BOND) label(0x03) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x05) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x05) beginloop(0x05) if_distance_to_target_gt(1000, /*goto*/ 0x2e) @@ -1519,7 +1519,7 @@ u8 func0402_taker[] = { // Jo got too close label(0x06) set_self_flag_bankx(CHRFLAG0_00002000, BANK_0) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) label(0x09) yield if_chr_stopped(/*goto*/ 0x06) @@ -1546,7 +1546,7 @@ u8 func0402_taker[] = { restart_timer set_target_chr(CHR_NEGOTIATOR) label(0x03) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x04) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x04) beginloop(0x04) chr_toggle_p1p2(CHR_SELF) @@ -1584,7 +1584,7 @@ u8 func0402_taker[] = { // Shoot label(0x6f) label(0x06) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) beginloop(0x08) if_chr_death_animation_finished(CHR_NEGOTIATOR, /*goto*/ 0x06) @@ -1805,19 +1805,19 @@ u8 func0404_sniper[] = { if_rand_lt(64, /*goto*/ 0x59) if_rand_lt(128, /*goto*/ 0x5a) if_rand_lt(196, /*goto*/ 0x5b) - try_face_entity(ENTITYTYPE_DIRECTION, 0, /*goto*/ 0x06) + try_face_entity(ATTACKFLAG_AIMATDIRECTION, 0, /*goto*/ 0x06) reloop(0x04) label(0x59) - try_face_entity(ENTITYTYPE_DIRECTION, 0x4000, /*goto*/ 0x06) + try_face_entity(ATTACKFLAG_AIMATDIRECTION, 0x4000, /*goto*/ 0x06) reloop(0x04) label(0x5a) - try_face_entity(ENTITYTYPE_DIRECTION, 0x8000, /*goto*/ 0x06) + try_face_entity(ATTACKFLAG_AIMATDIRECTION, 0x8000, /*goto*/ 0x06) reloop(0x04) label(0x5b) - try_face_entity(ENTITYTYPE_DIRECTION, 0xc000, /*goto*/ 0x06) + try_face_entity(ATTACKFLAG_AIMATDIRECTION, 0xc000, /*goto*/ 0x06) reloop(0x04) // Not actually running to a pad. Just waiting 2 seconds for the change @@ -1889,13 +1889,13 @@ u8 func0404_sniper[] = { label(0x2d) restart_timer label(0x06) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x08) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x08) reloop(0x04) label(0x08) yield label(0x06) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) reloop(0x04) beginloop(0x09) diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index daf603c71..8439e891e 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -1898,10 +1898,10 @@ u8 func041f_holoclone[] = { set_target_chr(holoclone) \ label(0x04) \ yield \ - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xb9) \ + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xb9) \ label(0xb9) \ say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) \ - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) \ + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) \ \ beginloop(0x0a) \ if_chr_stopped(/*goto*/ 0x08) \ @@ -1987,7 +1987,7 @@ u8 func0425_hostage_thank_and_run[] = { label(0x08) restart_timer label(0x0a) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) beginloop(0x0b) if_timer_gt(60, /*goto*/ 0x08) @@ -2079,7 +2079,7 @@ u8 func0427_drop_devastator[] = { label(0x08) restart_timer label(0x0a) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) beginloop(0x0b) if_timer_gt(60, /*goto*/ 0x08) @@ -2365,10 +2365,10 @@ u8 func0432_taker_attack[] = { // Healthy label(0x04) yield - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xb9) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xb9) label(0xb9) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) beginloop(0x0a) if_chr_stopped(/*goto*/ 0x08) diff --git a/src/files/setup/setuplee.c b/src/files/setup/setuplee.c index 9409f8fb0..4ee714c8d 100644 --- a/src/files/setup/setuplee.c +++ b/src/files/setup/setuplee.c @@ -1489,7 +1489,7 @@ u8 func0408_knifeable_skedar[] = { label(0x2c) restart_timer set_target_chr(CHR_CASS) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x04) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x04) beginloop(0x04) chr_toggle_p1p2(CHR_SELF) @@ -1525,7 +1525,7 @@ u8 func0408_knifeable_skedar[] = { label(0x06) restart_timer set_target_chr(CHR_CASS) - try_face_entity(ENTITYTYPE_PAD, 0x00ef, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x00ef, /*goto*/ 0x0b) beginloop(0x0b) chr_toggle_p1p2(CHR_SELF) @@ -2339,7 +2339,7 @@ u8 func041a_bridgeclone[] = { if_target_in_fov_left(10, /*goto*/ 0x06) if_target_out_of_fov_left(246, /*goto*/ 0x06) stop_chr - try_face_entity(ENTITYTYPE_TARGET, 1, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 1, /*goto*/ 0x0b) beginloop(0x0b) if_chr_dead(CHR_SELF, /*goto*/ 0xb8) @@ -2990,7 +2990,7 @@ u8 func0421_bridge_skedar[] = { label(0xc6) if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) set_target_chr(CHR_BOND) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xc7) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xc7) label(0x06) kneel @@ -3085,10 +3085,10 @@ u8 func0421_bridge_skedar[] = { label(0xca) if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x60) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xb1) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xb1) label(0xb1) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x06) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x06) goto_next(0x2c) label(0x60) diff --git a/src/files/setup/setuplip.c b/src/files/setup/setuplip.c index 749040eb4..d16094354 100644 --- a/src/files/setup/setuplip.c +++ b/src/files/setup/setuplip.c @@ -1354,7 +1354,7 @@ u8 func0410_labtech_showers_sa_pa[] = { if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x56) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -1365,7 +1365,7 @@ u8 func0410_labtech_showers_sa_pa[] = { dprint 'T','A','L','K',' ','1','\n',0, speak(CHR_TARGET, L_LIP_037, MP3_032D, CHANNEL_4, COLOR_08_RED) // "Who are you?" restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x64) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x64) // Wait until seeing Jo with a gun, or Jo has clothes beginloop(0x64) @@ -1725,7 +1725,7 @@ u8 func0418_doorman[] = { label(0x03) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -1958,7 +1958,7 @@ u8 func041a_labtech_harrysmate[] = { label(0x2d) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -2328,7 +2328,7 @@ u8 func0413_mechanic[] = { restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -2632,7 +2632,7 @@ u8 func041f_labtech_lights[] = { if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x53) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -2727,7 +2727,7 @@ u8 func041f_labtech_lights[] = { label(0x06) set_self_chrflag(CHRCFLAG_00000080) restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0428, /*goto*/ 0x6e) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0428, /*goto*/ 0x6e) beginloop(0x6e) if_timer_gt(120, /*goto*/ 0x6f) @@ -2859,7 +2859,7 @@ u8 func0420_labtech_doors[] = { label(0x03) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_saw_injury(0x00, /*goto*/ 0x89) @@ -2925,9 +2925,9 @@ u8 func0420_labtech_doors[] = { label(0x06) restart_timer if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d) - try_face_entity(ENTITYTYPE_PAD, 0x03c6, /*goto*/ 0x70) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x03c6, /*goto*/ 0x70) label(0x2d) - try_face_entity(ENTITYTYPE_PAD, 0x03c7, /*goto*/ 0x70) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x03c7, /*goto*/ 0x70) beginloop(0x70) if_timer_gt(30, /*goto*/ 0x2d) @@ -2956,7 +2956,7 @@ u8 func0420_labtech_doors[] = { label(0x06) restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0107, /*goto*/ 0x73) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0107, /*goto*/ 0x73) beginloop(0x73) if_timer_gt(30, /*goto*/ 0x06) @@ -3094,7 +3094,7 @@ u8 func0422_labtech_records[] = { label(0x2d) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) label(0x09) yield if_target_in_fov_left(10, /*goto*/ 0x06) diff --git a/src/files/setup/setuplue.c b/src/files/setup/setuplue.c index 77cff2e50..6fb8813e3 100644 --- a/src/files/setup/setuplue.c +++ b/src/files/setup/setuplue.c @@ -1536,14 +1536,14 @@ u8 func0417_traitor[] = { label(0x2e) call_rng if_rand_gt(128, /*goto*/ 0x2e) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x0a) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x0a) label(0x2e) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x0a) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x0a) dprint 'S','H','O','O','T','F','A','I','L','E','D','\n',0, yield label(0x0a) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) goto_next(0x0c) beginloop(0x0b) @@ -1655,7 +1655,7 @@ u8 func0416_mechanic[] = { label(0x2e) set_alertness(100) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) beginloop(0x0a) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -1729,7 +1729,7 @@ u8 func040a_top_interceptor[] = { goto_first(0x09) label(0x59) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x5b) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x5b) reloop(0x0a) label(0x5b) diff --git a/src/files/setup/setuppam.c b/src/files/setup/setuppam.c index 034a86ba0..7ad428603 100644 --- a/src/files/setup/setuppam.c +++ b/src/files/setup/setuppam.c @@ -1210,7 +1210,7 @@ u8 func0406_elvis_follow_and_do_sa_megaweapon[] = { label(0x2e) restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0115, /*goto*/ 0x97) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0115, /*goto*/ 0x97) beginloop(0x97) if_timer_gt(60, /*goto*/ 0x06) @@ -3222,9 +3222,9 @@ u8 func041d_sniper[] = { set_chr_cloaked(CHR_SELF, FALSE, TRUE) label(0x0a) label(0x2e) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2e) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2e) label(0x2e) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) beginloop(0x0b) if_chr_stopped(/*goto*/ 0x0c) @@ -3466,7 +3466,7 @@ u8 func040f_miniskedar[] = { restart_timer dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) beginloop(0x0b) if_timer_gt(30, /*goto*/ 0x06) diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index 9c09b3aa5..03587c46b 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -1437,7 +1437,7 @@ u8 func0412_cia[] = { label(0x1e) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x04) @@ -1586,7 +1586,7 @@ u8 func0413_bugspotter[] = { // Player in sight - face them label(0x04) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x04) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x04) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x04) @@ -1868,7 +1868,7 @@ u8 func041d_fbi[] = { label(0x04) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0d) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0d) beginloop(0x0d) if_target_in_fov_left(10, /*goto*/ 0x04) @@ -2040,7 +2040,7 @@ u8 func041a_robot[] = { label(0x03) set_target_chr(CHR_P1P2) restart_timer - try_attack_stand(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_attack_stand(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) reloop(0x02) beginloop(0x09) diff --git a/src/files/setup/setuprit.c b/src/files/setup/setuprit.c index da92e144a..a9f884ff4 100644 --- a/src/files/setup/setuprit.c +++ b/src/files/setup/setuprit.c @@ -1209,7 +1209,7 @@ u8 func0405_president_in_room[] = { set_target_chr(CHR_PRESET) restart_timer label(0x08) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) // Wait for Carrington's "on this level" message to finish @@ -1245,7 +1245,7 @@ u8 func0405_president_in_room[] = { speak(CHR_TARGET, L_RIT_037, MP3_02BC, CHANNEL_7, COLOR_09_BLUE) // "Mr. President, you're in danger. Trent is trying t..." restart_timer stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x78) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x78) // In this loop the president will continue to turn to face the player // because it lacks an if_target_in_fov_left check. @@ -1326,7 +1326,7 @@ u8 func0405_president_in_room[] = { set_stage_flag(STAGEFLAG_PRESIDENT_CALLED_SECURITY) yield increase_squadron_alertness(100) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) beginloop(0x0a) endloop(0x0a) @@ -1338,7 +1338,7 @@ u8 func0405_president_in_room[] = { stop_chr speak(CHR_TARGET, L_RIT_041, MP3_02BD, CHANNEL_6, COLOR_09_BLUE) // "This is a recording of a meeting between Trent and..." restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0b) // This loop uses an if_sound_finished check rather than a timer check, // which allows the speech to be skipped. @@ -1412,7 +1412,7 @@ u8 func0405_president_in_room[] = { set_stage_flag(STAGEFLAG_PRESIDENT_STARTED_RUNNING) speak(CHR_TARGET, L_RIT_039, MP3_02BE, CHANNEL_6, COLOR_09_BLUE) // "We have to get you to the escape pod. Follow me." restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0e) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0e) beginloop(0x0e) if_timer_gt(120, /*goto*/ 0x06) @@ -1773,9 +1773,9 @@ u8 func0413_taker[] = { if_chr_death_animation_finished(CHR_TARGET, /*goto*/ 0x11) if_chr_dead(CHR_TARGET, /*goto*/ 0x11) if_chr_knockedout(CHR_TARGET, /*goto*/ 0x11) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x06) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x06) label(0x06) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) label(0x08) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) say_quip(CHR_BOND, QUIP_ATTACK2, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) @@ -2755,7 +2755,7 @@ u8 func041e_blonde[] = { set_self_chrflag(CHRCFLAG_00000040) label(0x68) if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x75) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x75) label(0x06) kneel @@ -2781,7 +2781,7 @@ u8 func041e_blonde[] = { goto_next(0x6c) // Unreachable - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x6d) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x6d) goto_next(0x6e) // Reachable from below @@ -2842,7 +2842,7 @@ u8 func041e_blonde[] = { label(0x6c) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x06) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x06) label(0x06) goto_first(0x6d) @@ -2850,10 +2850,10 @@ u8 func041e_blonde[] = { goto_first(0x6e) label(0x76) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x74) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x74) label(0x74) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x06) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x06) goto_next(0x2d) label(0x06) goto_first(0x6d) @@ -2915,10 +2915,10 @@ u8 func0420_trent_attacking[] = { // President in sight label(0x06) label(0x76) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x74) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x74) label(0x74) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x08) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x08) goto_next(0x2d) beginloop(0x08) @@ -3041,7 +3041,7 @@ u8 func0429_be_unalert[] = { set_alertness(0) label(0x03) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x04) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x04) beginloop(0x04) if_chr_stopped(/*goto*/ 0x06) @@ -3219,7 +3219,7 @@ u8 func0407_steward[] = { endloop(0x87) label(0x06) - try_face_entity(ENTITYTYPE_PAD, PAD_PRESET, /*goto*/ 0x88) + try_face_entity(ATTACKFLAG_AIMATPAD, PAD_PRESET, /*goto*/ 0x88) beginloop(0x88) if_chr_stopped(/*goto*/ 0x06) @@ -3238,7 +3238,7 @@ u8 func0407_steward[] = { label(0x89) set_alertness(100) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -3294,7 +3294,7 @@ u8 func0407_stewardess[] = { // Alerted label(0x2d) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_target_in_fov_left(10, /*goto*/ 0x06) diff --git a/src/files/setup/setupsho.c b/src/files/setup/setupsho.c index 33ca83753..d2c79c93d 100644 --- a/src/files/setup/setupsho.c +++ b/src/files/setup/setupsho.c @@ -614,7 +614,7 @@ u8 func0402_unarmed_skedar[] = { if_target_out_of_fov_left(246, /*goto*/ 0x06) stop_chr set_action(MA_FACING, TRUE) - try_face_entity(ENTITYTYPE_TARGET, 1, /*goto*/ 0x0c) + try_face_entity(ATTACKFLAG_AIMATTARGET, 1, /*goto*/ 0x0c) beginloop(0x0c) if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ 0x10) @@ -802,7 +802,7 @@ u8 func0404_miniskedar[] = { restart_timer dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0c) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0c) beginloop(0x0c) if_timer_gt(30, /*goto*/ 0x06) @@ -1693,7 +1693,7 @@ u8 func0409_reaper_slayer_skedar[] = { label(0x5e) if_self_flag_bankx_eq(CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06) set_target_chr(CHR_BOND) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x5f) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x5f) label(0x06) kneel @@ -1800,10 +1800,10 @@ u8 func0409_reaper_slayer_skedar[] = { label(0x71) if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x72) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x70) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x70) label(0x70) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x06) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x06) goto_next(0x2d) label(0x72) @@ -1981,7 +1981,7 @@ u8 func040d_king_combat[] = { label(LABEL_MAINLOOP) chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x04) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x04) beginloop(0x04) if_chr_death_animation_finished(CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD) @@ -2042,10 +2042,10 @@ u8 func040d_king_combat[] = { label(0x06) say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x70) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x70) label(0x70) say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x7b) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x7b) goto_next(0x2d) label(0x06) @@ -2161,7 +2161,7 @@ u8 func040d_king_combat[] = { if_target_in_fov_left(10, /*goto*/ 0x06) if_target_out_of_fov_left(246, /*goto*/ 0x06) stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x09) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x09) beginloop(0x09) if_chr_death_animation_finished(CHR_P1P2, /*goto*/ 0x0b) diff --git a/src/files/setup/setuptra.c b/src/files/setup/setuptra.c index 252b4be01..bcc61e5e6 100644 --- a/src/files/setup/setuptra.c +++ b/src/files/setup/setuptra.c @@ -837,7 +837,7 @@ u8 func0402_jonathan_waiting_for_meetup[] = { label(0x06) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x0a) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x0a) beginloop(0x0a) if_sound_finished(CHANNEL_4, /*goto*/ 0x32) @@ -981,7 +981,7 @@ u8 func0404_jonathan_following_and_mine[] = { label(0x06) play_x_track(XREASON_DEFAULT, 10, 30) restart_timer - try_face_entity(ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0173, /*goto*/ 0xc4) beginloop(0xc4) if_timer_gt(60, /*goto*/ 0x06) @@ -1101,7 +1101,7 @@ u8 func0413_jonathan_hangar[] = { set_stage_flag(STAGEFLAG_JON_WAITING_AT_UFO) stop_chr set_target_chr(CHR_P1P2) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x14) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x14) // Wait until both Joanna and Elvis within 400 units beginloop(0x14) @@ -1336,7 +1336,7 @@ u8 func0413_jonathan_hangar[] = { label(0x59) speak(CHR_BOND, L_TRA_047, MP3_02AC, CHANNEL_5, COLOR_09_BLUE) // "Jonathan, go with Elvis. I'll see to the consoles." restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x46) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x46) beginloop(0x46) if_target_in_fov_left(10, /*goto*/ 0x06) @@ -1460,7 +1460,7 @@ u8 func0405_jonathan_shot_while_planting[] = { endloop(0x0c) label(0x06) - try_face_entity(ENTITYTYPE_PAD, 0x0173, /*goto*/ 0xc4) + try_face_entity(ATTACKFLAG_AIMATPAD, 0x0173, /*goto*/ 0xc4) beginloop(0xc4) if_timer_gt(60, /*goto*/ 0x06) diff --git a/src/files/setup/setupwax.c b/src/files/setup/setupwax.c index d0574b6b7..1cda961be 100644 --- a/src/files/setup/setupwax.c +++ b/src/files/setup/setupwax.c @@ -1316,7 +1316,7 @@ u8 func0411_cass_in_office[] = { label(0x55) stop_chr yield - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x56) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x56) beginloop(0x56) if_target_in_fov_left(10, /*goto*/ 0x57) @@ -1350,9 +1350,9 @@ u8 func0411_cass_in_office[] = { reloop(0x5a) label(0x83) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2c) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2c) label(0x2c) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x82) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x82) // Wait until shooting animation finished beginloop(0x82) @@ -1586,9 +1586,9 @@ u8 func0415_chief[] = { // Attack while in sight label(0x2c) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x2c) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x2c) label(0x2c) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x82) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x82) beginloop(0x82) if_chr_stopped(/*goto*/ 0x06) diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index da819d4d9..7bc3d758a 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -1618,17 +1618,17 @@ glabel var7f1a8cfc /* f02e36c: 00000000 */ nop ); -f32 chrGetDistanceToEntity(struct chrdata *chr, u32 entitytype, s32 entityid) +f32 chrGetDistanceToEntity(struct chrdata *chr, u32 attackflags, s32 entityid) { - if (entitytype & ENTITYTYPE_TARGET) { + if (attackflags & ATTACKFLAG_AIMATTARGET) { return chrGetDistanceToTarget(chr); } - if (entitytype & ENTITYTYPE_CHR) { + if (attackflags & ATTACKFLAG_AIMATCHR) { return chrGetDistanceToChr(chr, entityid); } - if (entitytype & ENTITYTYPE_PAD) { + if (attackflags & ATTACKFLAG_AIMATPAD) { return chrGetDistanceToPad(chr, entityid); } @@ -1818,8 +1818,8 @@ void func0f02e9a0(struct chrdata *chr, f32 arg1) chrStopFiring(chr); chr->actiontype = ACT_STAND; chr->act_stand.unk02c = 0; - chr->act_stand.face_entitytype = 0; - chr->act_stand.face_entityid = 0; + chr->act_stand.flags = 0; + chr->act_stand.entityid = 0; chr->act_stand.unk038 = 0; chr->act_stand.unk03c = 2; chr->act_stand.unk040 = 0; @@ -1859,8 +1859,8 @@ void chrStand(struct chrdata *chr) chrStopFiring(chr); chr->actiontype = ACT_STAND; chr->act_stand.unk02c = 1; - chr->act_stand.face_entitytype = 0; - chr->act_stand.face_entityid = 0; + chr->act_stand.flags = 0; + chr->act_stand.entityid = 0; chr->act_stand.unk038 = 0; chr->act_stand.unk03c = 2; chr->act_stand.unk040 = 0; @@ -1884,8 +1884,8 @@ void chrStand(struct chrdata *chr) } else if (race == RACE_DRCAROLL || race == RACE_ROBOT) { chr->actiontype = ACT_STAND; chr->act_stand.unk02c = 1; - chr->act_stand.face_entitytype = 0; - chr->act_stand.face_entityid = 0; + chr->act_stand.flags = 0; + chr->act_stand.entityid = 0; chr->act_stand.unk038 = 0; chr->act_stand.unk03c = 2; chr->act_stand.unk040 = 0; @@ -1910,10 +1910,10 @@ bool chrFaceCover(struct chrdata *chr) chrStand(chr); chr->act_stand.unk038 = 0; - chr->act_stand.face_entitytype = ENTITYTYPE_DIRECTION; + chr->act_stand.flags = ATTACKFLAG_AIMATDIRECTION; chr->act_stand.unk03c = 1; - //chr->act_stand.face_entityid = atan2f(-cover.look->x, -cover.look->z) * (0x4000 / BADDEG2RAD(90)); - chr->act_stand.face_entityid = atan2f(-cover.look->x, -cover.look->z) * 10432.039f; + //chr->act_stand.entityid = atan2f(-cover.look->x, -cover.look->z) * (0x4000 / BADDEG2RAD(90)); + chr->act_stand.entityid = atan2f(-cover.look->x, -cover.look->z) * 10432.039f; return true; } @@ -2514,14 +2514,14 @@ glabel chrAttackLie ); // Mismatch because some instructions are swapped -//void chrAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid) +//void chrAttackLie(struct chrdata *chr, u32 attackflags, s32 entityid) //{ // u32 stack1[2]; // struct prop *gun = chrGetEquippedWeaponProp(chr, 0); // s32 firing[2] = {false, false}; // u32 stack2[2]; // -// if (entitytype & 0x20) { +// if (attackflags & 0x20) { // firing[1] = false; // firing[0] = false; // } else { @@ -2529,7 +2529,7 @@ glabel chrAttackLie // firing[0] = !firing[1]; // } // -// chrAttack(chr, &g_LieAttackAnims, gun == NULL, firing, entitytype, entityid, 0); +// chrAttack(chr, &g_LieAttackAnims, gun == NULL, firing, attackflags, entityid, 0); //} GLOBAL_ASM( @@ -2665,7 +2665,7 @@ glabel chrAttackKneel /* f030580: 00000000 */ nop ); -//void chrAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid) +//void chrAttackKneel(struct chrdata *chr, u32 attackflags, s32 entityid) //{ // struct prop *leftprop = chrGetEquippedWeaponProp(chr, HAND_LEFT); // 54 // struct prop *rightprop = chrGetEquippedWeaponProp(chr, HAND_RIGHT); // 50 @@ -2719,7 +2719,7 @@ glabel chrAttackKneel // firing[HAND_RIGHT] = !firing[HAND_LEFT]; // } // -// chrAttack(chr, iVar5, sp48, firing, entitytype, entityid, 0); +// chrAttack(chr, iVar5, sp48, firing, attackflags, entityid, 0); //} void chrAttackWalkChooseAnimation(struct chrdata *chr) @@ -3813,7 +3813,7 @@ void func0f031254(struct chrdata *chr) struct model *model = chr->model; struct attackanimconfig *animcfg = chr->act_attack.animcfg; - if (chr->act_attack.entitytype & ENTITYTYPE_AIMONLY) { + if (chr->act_attack.flags & ATTACKFLAG_AIMONLY) { if (animcfg->unk20 >= 0 && animcfg->unk20 < animcfg->unk18) { modelSetAnimEndFrame(model, animcfg->unk20); } else { @@ -3840,7 +3840,7 @@ void func0f031254(struct chrdata *chr) * This function implements attack behaviour common to all the attack types, * such as stand, kneel and lie. */ -void chrAttack(struct chrdata *chr, struct attackanimgroup **animgroups, bool flip, bool *firing, u32 entitytype, u32 entityid, u32 arg6) +void chrAttack(struct chrdata *chr, struct attackanimgroup **animgroups, bool flip, bool *firing, u32 attackflags, u32 entityid, u32 arg6) { struct model *model = chr->model; s32 i; @@ -3873,7 +3873,7 @@ void chrAttack(struct chrdata *chr, struct attackanimgroup **animgroups, bool fl } } else { // Non-sniping animations: Choose animation based on angle to target - angle = chrGetRelativeAttackAngle(chr, entitytype, entityid); + angle = chrGetRelativeAttackAngle(chr, attackflags, entityid); if (flip) { groupindex = (M_BADTAU - angle) * 5.0937690734863f + 0.5f; @@ -3957,20 +3957,20 @@ void chrAttack(struct chrdata *chr, struct attackanimgroup **animgroups, bool fl chr->act_attack.maxshots = 1; } } else { - if (entitytype & ENTITYTYPE_SINGLESHOT) { + if (attackflags & ATTACKFLAG_SINGLESHOT) { chr->act_attack.maxshots = 1; } else { chr->act_attack.maxshots = (random() % 4) + 2; } - // @bug: ENTITYTYPE_SINGLESHOT is not respected here if both guns + // @bug: ATTACKFLAG_SINGLESHOT is not respected here if both guns // are firing. if (firing[HAND_RIGHT] && firing[HAND_LEFT]) { chr->act_attack.maxshots += (random() % 4) + 2; } } - chr->act_attack.entitytype = entitytype; + chr->act_attack.flags = attackflags; chr->act_attack.entityid = entityid; chr->act_attack.unk054 = arg6; chr->act_attack.unk058 = 0; @@ -3994,7 +3994,7 @@ void chrAttack(struct chrdata *chr, struct attackanimgroup **animgroups, bool fl } } -void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 maxshots) +void chrAttackAmount(struct chrdata *chr, u32 attackflags, u32 entityid, u32 maxshots) { u32 stack; struct prop *prop = chrGetEquippedWeaponProp(chr, 0); @@ -4009,7 +4009,7 @@ void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 maxs firing[0] = true; } - chrAttack(chr, things, false, firing, entitytype, entityid, 0); + chrAttack(chr, things, false, firing, attackflags, entityid, 0); chr->actiontype = ACT_ATTACKAMOUNT; chr->act_attack.numshots = 0; @@ -8636,15 +8636,15 @@ glabel chrCanSeeEntity bool chrCanSeeAttackTarget(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3) { - u32 entitytype = ENTITYTYPE_TARGET; + u32 attackflags = ATTACKFLAG_AIMATTARGET; u32 entityid = 0; if (chr->actiontype == ACT_ATTACK) { - entitytype = chr->act_attack.entitytype; + attackflags = chr->act_attack.flags; entityid = chr->act_attack.entityid; } - return chrCanSeeEntity(chr, pos, rooms, arg3, entitytype, entityid); + return chrCanSeeEntity(chr, pos, rooms, arg3, attackflags, entityid); } bool chrCanSeeChr(struct chrdata *chr, struct chrdata *target, s16 *room) @@ -9233,7 +9233,7 @@ bool chrTryAttackAmount(struct chrdata *chr, u32 arg1, u32 arg2, u8 lower, u8 up return false; } -bool chrTryAttackStand(struct chrdata *chr, s32 entitytype, s32 entityid) +bool chrTryAttackStand(struct chrdata *chr, u32 attackflags, s32 entityid) { s32 race = CHRRACE(chr); @@ -9250,7 +9250,7 @@ bool chrTryAttackStand(struct chrdata *chr, s32 entitytype, s32 entityid) if (race == RACE_HUMAN || race == RACE_SKEDAR) { if (chrGetEquippedWeaponPropWithCheck(chr, 0) || (chrGetEquippedWeaponPropWithCheck(chr, 1))) { - chrAttackStand(chr, entitytype, entityid); + chrAttackStand(chr, attackflags, entityid); return true; } } @@ -9259,13 +9259,13 @@ bool chrTryAttackStand(struct chrdata *chr, s32 entitytype, s32 entityid) return false; } -bool chrTryAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid) +bool chrTryAttackKneel(struct chrdata *chr, u32 attackflags, s32 entityid) { s32 race = CHRRACE(chr); if (race == RACE_HUMAN || race == RACE_SKEDAR) { if (chrIsReadyForOrders(chr) && (chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))) { - chrAttackKneel(chr, entitytype, entityid); + chrAttackKneel(chr, attackflags, entityid); return true; } } @@ -9273,13 +9273,13 @@ bool chrTryAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid) return false; } -bool chrTryAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid) +bool chrTryAttackLie(struct chrdata *chr, u32 attackflags, s32 entityid) { s32 race = CHRRACE(chr); if (race == RACE_HUMAN || race == RACE_SKEDAR) { if (chrIsReadyForOrders(chr) && (chrGetEquippedWeaponPropWithCheck(chr, 0) || chrGetEquippedWeaponPropWithCheck(chr, 1))) { - chrAttackLie(chr, entitytype, entityid); + chrAttackLie(chr, attackflags, entityid); return true; } } @@ -9287,7 +9287,7 @@ bool chrTryAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid) return false; } -bool chrTryModifyAttack(struct chrdata *chr, u32 entitytype, s32 entityid) +bool chrTryModifyAttack(struct chrdata *chr, u32 attackflags, s32 entityid) { s32 race = CHRRACE(chr); @@ -9296,8 +9296,8 @@ bool chrTryModifyAttack(struct chrdata *chr, u32 entitytype, s32 entityid) } if (chr->actiontype == ACT_ATTACK - && (chr->act_attack.entitytype & (ENTITYTYPE_AIMONLY | ENTITYTYPE_DONTTURN))) { - chr->act_attack.entitytype = entitytype; + && (chr->act_attack.flags & (ATTACKFLAG_AIMONLY | ATTACKFLAG_DONTTURN))) { + chr->act_attack.flags = attackflags; chr->act_attack.entityid = entityid; func0f031254(chr); return true; @@ -9306,23 +9306,22 @@ bool chrTryModifyAttack(struct chrdata *chr, u32 entitytype, s32 entityid) return false; } -bool chrFaceEntity(struct chrdata *chr, u32 entitytype, u32 entityid) +bool chrFaceEntity(struct chrdata *chr, u32 attackflags, u32 entityid) { if (chrIsReadyForOrders(chr)) { if (chr->actiontype != ACT_STAND) { chrStand(chr); } - if (entitytype != chr->act_stand.face_entitytype || - entityid != chr->act_stand.face_entityid) { - chr->act_stand.face_entitytype = entitytype; - chr->act_stand.face_entityid = entityid; + if (attackflags != chr->act_stand.flags || entityid != chr->act_stand.entityid) { + chr->act_stand.flags = attackflags; + chr->act_stand.entityid = entityid; chr->act_stand.unk038 = 0; chr->act_stand.unk040 = 0; - if (entitytype == ENTITYTYPE_TARGET && entityid == 1) { + if (attackflags == ATTACKFLAG_AIMATTARGET && entityid == 1) { chr->act_stand.face_target = true; - chr->act_stand.face_entityid = 0; + chr->act_stand.entityid = 0; } } @@ -9981,7 +9980,7 @@ bool chrTryStartAlarm(struct chrdata *chr, s32 pad_id) return false; } -s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid) +s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 attackflags, u32 entityid) { bool done = false; @@ -10030,7 +10029,7 @@ s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid) if (weapon->weaponnum == WEAPON_GRENADE || weapon->weaponnum == WEAPON_NBOMB) { chrThrowGrenade(chr, 0, false); - chr->act_throwgrenade.entitytype = entitytype; + chr->act_throwgrenade.flags = attackflags; chr->act_throwgrenade.entityid = entityid; done = true; } @@ -10041,7 +10040,7 @@ s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid) if (weapon->weaponnum == WEAPON_GRENADE || weapon->weaponnum == WEAPON_NBOMB) { chrThrowGrenade(chr, 1, false); - chr->act_throwgrenade.entitytype = entitytype; + chr->act_throwgrenade.flags = attackflags; chr->act_throwgrenade.entityid = entityid; done = true; } @@ -10068,7 +10067,7 @@ s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid) weapon = prop->weapon; weapon->base.hidden |= OBJHFLAG_00000800; chrThrowGrenade(chr, rightprop == NULL ? 0 : 1, true); - chr->act_throwgrenade.entitytype = entitytype; + chr->act_throwgrenade.flags = attackflags; chr->act_throwgrenade.entityid = entityid; done = true; } diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index bf8715963..0ce244d8d 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -740,7 +740,7 @@ bool ai00f0(void) if (g_Vars.chrdata->actiontype == ACT_ATTACK && !g_Vars.chrdata->act_attack.unk058 && - g_Vars.chrdata->act_attack.entitytype & ENTITYTYPE_DONTTURN) { + g_Vars.chrdata->act_attack.flags & ATTACKFLAG_DONTTURN) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[2]); } else { g_Vars.aioffset += 3; diff --git a/src/game/data/ailists.c b/src/game/data/ailists.c index 2b573cce9..ba660182c 100644 --- a/src/game/data/ailists.c +++ b/src/game/data/ailists.c @@ -1168,7 +1168,7 @@ u8 func0007_alerted[] = { dprint 'A','T',' ','T','R','A','P',' ','P','A','D','\n',0, label(0x9b) if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ LABEL_CLOAKED) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x03) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x03) beginloop(0x03) if_can_see_attack_target(/*goto*/ 0x9a) @@ -1188,7 +1188,7 @@ u8 func0007_alerted[] = { // Aiming only label(0x9a) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x04) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x04) beginloop(0x04) if_chr_stopped(/*goto*/ 0x16) @@ -1260,7 +1260,7 @@ u8 func0007_alerted[] = { dprint 'U','N','D','E','R',' ','P','O','P','P','E','R','\n',0, label(0xa8) if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ LABEL_CLOAKED) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xa9) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xa9) beginloop(0xa9) chr_toggle_p1p2(CHR_SELF) @@ -1278,7 +1278,7 @@ u8 func0007_alerted[] = { goto_next(0x13) label(0x16) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0xaa) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xaa) label(0x13) kneel restart_timer @@ -1297,7 +1297,7 @@ u8 func0007_alerted[] = { label(0x13) if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ LABEL_CLOAKED) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x13) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x13) goto_first(0xa8) label(0x13) @@ -1305,7 +1305,7 @@ u8 func0007_alerted[] = { goto_first(0xa8) label(0x13) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x13) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x13) goto_first(0xa8) label(0x13) @@ -1331,7 +1331,7 @@ u8 func0007_alerted[] = { if_target_out_of_fov_left(246, /*goto*/ 0x13) restart_timer stop_chr - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0xec) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xec) beginloop(0xec) if_target_in_fov_left(10, /*goto*/ 0x13) @@ -1369,7 +1369,7 @@ u8 func0007_alerted[] = { label(0x13) restart_timer if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ LABEL_CLOAKED) - try_attack_lie(ENTITYTYPE_FORWARD | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xdf) + try_attack_lie(ATTACKFLAG_AIMFORWARD | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xdf) beginloop(0xdf) if_distance_to_target_lt(1000, /*goto*/ 0x16) @@ -1385,7 +1385,7 @@ u8 func0007_alerted[] = { label(0x13) restart_timer set_accuracy(100) - try_attack_lie(ENTITYTYPE_TARGET, 0, /*goto*/ 0xe0) + try_attack_lie(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xe0) dprint 'S','N','I','P','E','R',' ','N','O',' ','S','H','O','O','T','\n',0, beginloop(0xe0) @@ -1525,7 +1525,7 @@ u8 func0007_alerted[] = { unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ LABEL_CLOAKED) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x59) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x59) beginloop(0x59) if_dangerous_object_nearby(3, /*goto*/ LABEL_FLEE_GRENADE) @@ -1660,11 +1660,11 @@ u8 func0007_alerted[] = { label(0x13) call_rng if_rand_gt(128, /*goto*/ 0x8c) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x8c) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x16) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x60) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x60) beginloop(0x60) if_dangerous_object_nearby(3, /*goto*/ LABEL_FLEE_GRENADE) @@ -1874,7 +1874,7 @@ u8 func0007_alerted[] = { unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x4b) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x4b) beginloop(0x4b) if_nearly_in_targets_sight(30, /*goto*/ 0x42) @@ -1903,7 +1903,7 @@ u8 func0007_alerted[] = { unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1) unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1) if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_CLOAKED, /*goto*/ LABEL_CLOAKED) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x40) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x40) beginloop(0x40) if_dangerous_object_nearby(3, /*goto*/ LABEL_FLEE_GRENADE) @@ -2010,11 +2010,11 @@ u8 func0007_alerted[] = { label(0x13) call_rng if_rand_gt(128, /*goto*/ 0x8c) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x8c) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x16) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x43) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x43) beginloop(0x43) if_dangerous_object_nearby(3, /*goto*/ LABEL_FLEE_GRENADE) @@ -2346,16 +2346,16 @@ u8 func0007_alerted[] = { label(0x13) call_rng if_rand_gt(128, /*goto*/ 0x8c) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x28) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x28) label(0x8c) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x28) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x28) dprint 'S','H','O','O','T','F','A','I','L','E','D','\n',0, yield if_dangerous_object_nearby(3, /*goto*/ LABEL_FLEE_GRENADE) goto_first(0x8b) label(0x28) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0x44) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x44) goto_next(0x67) label(0x44) @@ -2667,7 +2667,7 @@ u8 func000a_do_idle_animation[] = { label(0x07) dprint 'N','A','T',' ','5','\n',0, restart_timer - try_face_entity(ENTITYTYPE_PAD, PAD_PRESET, /*goto*/ 0xfa) + try_face_entity(ATTACKFLAG_AIMATPAD, PAD_PRESET, /*goto*/ 0xfa) beginloop(0xfa) if_timer_gt(60, /*goto*/ 0x06) @@ -3208,11 +3208,11 @@ u8 func000c_combat_with_target_chr[] = { label(0x13) call_rng if_rand_gt(128, /*goto*/ 0x8c) - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x8c) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x16) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0xc3) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xc3) label(0xc3) say_quip(CHR_BOND, QUIP_ATTACK3, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00) @@ -3309,7 +3309,7 @@ u8 func000c_combat_with_target_chr[] = { dprint 'G','O','T',' ','T','O',' ','C','O','V','E','R','\n',0, label(0xc8) restart_timer - try_attack_kneel(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0xc9) + try_attack_kneel(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0xc9) beginloop(0xc9) if_chr_dead(CHR_TARGET, /*goto*/ 0xc5) @@ -3346,7 +3346,7 @@ u8 func000c_combat_with_target_chr[] = { label(0x16) say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) label(0x17) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0xcb) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xcb) goto_next(0x16) label(0xcb) @@ -3457,7 +3457,7 @@ u8 func000c_combat_with_target_chr[] = { label(0xd7) say_quip(CHR_BOND, QUIP_KILLEDPLAYER1, 0x28, 0x00, 0x01, BANK_0, 0x00, 0x00) - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x16) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x16) label(0x16) if_chr_is_skedar(CHR_SELF, /*goto*/ 0xd9) chr_do_animation(ANIM_YAWN, 0, 193, 0x18, 0x10, CHR_SELF, 2) @@ -3880,7 +3880,7 @@ u8 func000f_hand_combat[] = { if_target_in_fov_left(10, /*goto*/ LABEL_PUNCH) if_target_out_of_fov_left(246, /*goto*/ LABEL_PUNCH) stop_chr - try_face_entity(ENTITYTYPE_TARGET, 1, /*goto*/ 0x04) + try_face_entity(ATTACKFLAG_AIMATTARGET, 1, /*goto*/ 0x04) beginloop(0x04) if_chr_death_animation_finished(CHR_TARGET, /*goto*/ 0xfa) @@ -3969,7 +3969,7 @@ u8 func0010_civilian_say_comment[] = { label(0x16) restart_timer dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0, - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x04) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x04) // Wait until facing target, or a second has passed, or something else // happens such as hearing gunfire or seeing someone die. @@ -4166,7 +4166,7 @@ u8 func001b_observe_camspy[] = { label(0x13) set_target_chr(CHR_PRESET) restart_timer - try_face_entity(ENTITYTYPE_TARGET, 0, /*goto*/ 0x03) + try_face_entity(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0x03) // Wait 5 seconds. During this time: // - If the camspy moves away, exit the loop and follow it @@ -4221,9 +4221,9 @@ u8 func001b_observe_camspy[] = { // Shoot camspy label(0x09) set_self_chrflag(CHRCFLAG_00000040) - try_attack_stand(ENTITYTYPE_TARGET | ENTITYTYPE_AIMONLY, 0, /*goto*/ 0x16) + try_attack_stand(ATTACKFLAG_AIMATTARGET | ATTACKFLAG_AIMONLY, 0, /*goto*/ 0x16) label(0x16) - try_modify_attack(ENTITYTYPE_TARGET, 0, /*goto*/ 0xc3) + try_modify_attack(ATTACKFLAG_AIMATTARGET, 0, /*goto*/ 0xc3) // Wait until shooting animation done beginloop(0xc3) diff --git a/src/game/propobj.c b/src/game/propobj.c index 5d9c97e1e..ae4c834d3 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -71180,7 +71180,7 @@ void doorsCalcFrac(struct doorobj *door) if (isliftdoor) { if (chr->actiontype == ACT_STAND - || (chr->actiontype == ACT_ATTACK && (chr->act_attack.entitytype & ENTITYTYPE_DONTTURN)) + || (chr->actiontype == ACT_ATTACK && (chr->act_attack.flags & ATTACKFLAG_DONTTURN)) || (chr->actiontype == ACT_GOPOS && func0f02e064(chr))) { struct prop *target = chrGetTargetProp(chr); diff --git a/src/include/commands.h b/src/include/commands.h index 217b2359a..50df8a91f 100644 --- a/src/include/commands.h +++ b/src/include/commands.h @@ -216,39 +216,37 @@ /** * Makes the chr attempt to do a standing attack. * - * entity_type is expected to be an ENTITYTYPE constant. It can be bitwise ORed - * with ENTITYTYPE_AIMONLY to make the chr only aim at the entity. + * attackflags is expected to be a bitfield of ATTACKFLAG constants. */ -#define try_attack_stand(entity_type, entity_id, label) \ +#define try_attack_stand(attackflags, entity_id, label) \ mkshort(0x0015), \ - mkshort(entity_type), \ + mkshort(attackflags), \ mkshort(entity_id), \ label, /** * Makes the chr attempt to do a kneeling attack. * - * entity_type is expected to be an ENTITYTYPE constant. It can be bitwise ORed - * with ENTITYTYPE_AIMONLY to make the chr only aim at the entity. + * attackflags is expected to be a bitfield of ATTACKFLAG constants. */ -#define try_attack_kneel(entity_type, entity_id, label) \ +#define try_attack_kneel(attackflags, entity_id, label) \ mkshort(0x0016), \ - mkshort(entity_type), \ + mkshort(attackflags), \ mkshort(entity_id), \ label, /** - * Modifies the target entity and the aim-only/shoot flag. + * Modifies the attackflags for the current attack. * * This command can only be used after try_attack_stand, try_attack_kneel, * try_attack_lie or try_face_entity. A common pattern is to use one of those - * commands with the ENTITYTYPE_AIMONLY flag to point the gun at the entity, and + * commands with the ATTACKFLAG_AIMONLY flag to point the gun at the entity, and * if the label was followed then call try_modify_attack to remove the - * ENTITYTYPE_AIMONLY flag, causing the chr to shoot. + * ATTACKFLAG_AIMONLY flag, causing the chr to shoot. */ -#define try_modify_attack(entity_type, entity_id, label) \ +#define try_modify_attack(attackflags, entity_id, label) \ mkshort(0x0017), \ - mkshort(entity_type), \ + mkshort(attackflags), \ mkshort(entity_id), \ label, @@ -256,11 +254,11 @@ * Makes the chr begin facing the given entity. They will continue to face it * until stop_chr is used or a significantly different action is given to them. * - * entity_type is expected to be an ENTITYTYPE constant. + * attackflags is expected to be a bitfield of ATTACKFLAG constants. */ -#define try_face_entity(entity_type, entity_id, label) \ +#define try_face_entity(attackflags, entity_id, label) \ mkshort(0x0018), \ - mkshort(entity_type), \ + mkshort(attackflags), \ mkshort(entity_id), \ label, @@ -3324,7 +3322,7 @@ chr, \ label, -#define play_sound_from_entity(channel, entity_id, u1, u2, entity_type) \ +#define play_sound_from_entity(channel, entity_id, u1, u2, attackflags) \ mkshort(0x0179), \ channel, \ entity_id, \ @@ -3332,11 +3330,11 @@ 0x01, \ mkshort(u1), \ mkshort(u2), \ - entity_type, + attackflags, /** * Checks if the chr can see their attack target, which should have been - * specified in a prior attack command using entitytype and entityid. + * specified in a prior attack command using attackflags and entityid. * * If the chr is not currently doing an attack action, it checks if they can see * their normal target (same as if_can_see_target). @@ -3811,12 +3809,11 @@ /** * Makes the chr attempt to do a lying down attack. * - * entity_type is expected to be an ENTITYTYPE constant. It can be bitwise ORed - * with ENTITYTYPE_AIMONLY to make the chr only aim at the entity. + * attackflags is expected to be a bitfield of ATTACKFLAG constants. */ -#define try_attack_lie(entity_type, entity_id, label) \ +#define try_attack_lie(attackflags, entity_id, label) \ mkshort(0x01ba), \ - mkshort(entity_type), \ + mkshort(attackflags), \ mkshort(entity_id), \ label, diff --git a/src/include/constants.h b/src/include/constants.h index 3ec8f15bc..f4d536b68 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -297,6 +297,16 @@ #define ANIMFLAG_02 0x02 #define ANIMFLAG_08 0x08 +#define ATTACKFLAG_AIMATBOND 0x0001 // aim/shoot at Jo +#define ATTACKFLAG_AIMFORWARD 0x0002 // aim/shoot in front of self +#define ATTACKFLAG_AIMATCHR 0x0004 // aim/shoot at chr (ID should be given in entityid) +#define ATTACKFLAG_AIMATPAD 0x0008 // aim/shoot at pad (ID should be given in entityid) +#define ATTACKFLAG_AIMATDIRECTION 0x0010 // aim/shoot in compass direction (0000, 4000, 8000, c000) +#define ATTACKFLAG_AIMONLY 0x0020 // aim only - do not shoot +#define ATTACKFLAG_DONTTURN 0x0040 // don't do a shooting animation that would change the chr's direction +#define ATTACKFLAG_SINGLESHOT 0x0080 // single shot only (doesn't work correctly with dual weapons) +#define ATTACKFLAG_AIMATTARGET 0x0200 // aim/shoot at whatever is in the chr's `target` field + #define AUDIOCHANNELFLAG_IDLE 0x0001 #define AUDIOCHANNELFLAG_0002 0x0002 #define AUDIOCHANNELFLAG_0008 0x0008 @@ -759,16 +769,6 @@ #define DROPREASON_5 5 #define DROPREASON_6 6 -#define ENTITYTYPE_BOND 0x0001 // aim/shoot at Jo -#define ENTITYTYPE_FORWARD 0x0002 // aim/shoot in front of self -#define ENTITYTYPE_CHR 0x0004 // aim/shoot at chr (ID should be given in entity_id) -#define ENTITYTYPE_PAD 0x0008 // aim/shoot at pad (ID should be given in entity_id) -#define ENTITYTYPE_DIRECTION 0x0010 // aim/shoot in compass direction (0000, 4000, 8000, c000) -#define ENTITYTYPE_AIMONLY 0x0020 // aim only - do not shoot -#define ENTITYTYPE_DONTTURN 0x0040 // don't do a shooting animation that would change the chr's direction -#define ENTITYTYPE_SINGLESHOT 0x0080 -#define ENTITYTYPE_TARGET 0x0200 // aim/shoot at whatever is in the chr's `target` field - #define EXPLOSIONTYPE_0 0 #define EXPLOSIONTYPE_2 2 #define EXPLOSIONTYPE_3 3 diff --git a/src/include/game/chr/chraction.h b/src/include/game/chr/chraction.h index b17870ed3..49ceff1e3 100644 --- a/src/include/game/chr/chraction.h +++ b/src/include/game/chr/chraction.h @@ -20,8 +20,8 @@ bool weaponIsOneHanded(struct prop *prop); f32 chrGetRangedSpeed(struct chrdata *chr, f32 min, f32 max); s32 chrGetPercentageOfSlowness(struct chrdata *chr, s32 percentage); f32 chrGetRangedArghSpeed(struct chrdata *chr, f32 min, f32 max); -f32 chrGetRelativeAttackAngle(struct chrdata *chr, s32 entitytype, s32 entityid); -f32 chrGetDistanceToEntity(struct chrdata *chr, u32 entitytype, s32 entityid); +f32 chrGetRelativeAttackAngle(struct chrdata *chr, u32 attackflags, s32 entityid); +f32 chrGetDistanceToEntity(struct chrdata *chr, u32 attackflags, s32 entityid); void func0f02e3dc(struct coord *a, struct coord *b, struct coord *c, struct coord *d, struct coord *dst); void func0f02e4f8(struct coord *arg0, struct coord *arg1, struct coord *dst); f32 func0f02e550(struct prop *prop, f32 arg1, f32 arg2, u32 arg3, f32 ymax, f32 ymin); @@ -38,17 +38,17 @@ void chrSurrenderChooseAnimation(struct chrdata *chr); void chrSidestepChooseAnimation(struct chrdata *chr); void chrJumpOutChooseAnimation(struct chrdata *chr); void chrRunPosChooseAnimation(struct chrdata *chr); -void chrAttackStand(struct chrdata *chr, s32 entitytype, s32 entityid); -void chrAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid); -void chrAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid); +void chrAttackStand(struct chrdata *chr, u32 attackflags, s32 entityid); +void chrAttackLie(struct chrdata *chr, u32 attackflags, s32 entityid); +void chrAttackKneel(struct chrdata *chr, u32 attackflags, s32 entityid); void chrAttackWalkChooseAnimation(struct chrdata *chr); void chrAttackWalk(struct chrdata *chr, u32 speed); void chrAttackRollChooseAnimation(struct chrdata *chr); void chrAttackRoll(struct chrdata *chr, bool direction); void chrStartAnim(struct chrdata *chr, s32 animnum, f32 startframe, f32 endframe, u8 flags, s32 arg5, f32 speed); void func0f031254(struct chrdata *chr); -void chrAttack(struct chrdata *chr, struct attackanimgroup **arg1, bool flip, bool *firing, u32 entitytype, u32 entityid, u32 arg6); -void chrAttackAmount(struct chrdata *chr, u32 entitytype, u32 entityid, u32 maxshots); +void chrAttack(struct chrdata *chr, struct attackanimgroup **arg1, bool flip, bool *firing, u32 attackflags, u32 entityid, u32 arg6); +void chrAttackAmount(struct chrdata *chr, u32 attackflags, u32 entityid, u32 maxshots); void chrBeginDeath(struct chrdata *chr, struct coord *dir, f32 relangle, s32 ibh, struct shorthand *hand, bool knockout, s32 aplayernum); void chrBeginArgh(struct chrdata *chr, f32 angle, s32 ibh); void chrReactToDamage(struct chrdata *chr, struct coord *pos, f32 angle, s32 ibh, struct shorthand *hand, s32 playernum); @@ -94,7 +94,7 @@ void chrGoPosChooseAnimation(struct chrdata *chr); bool chrGoToPos(struct chrdata *chr, struct coord *pos, s16 *rooms, u32 flags); void chrPatrolChooseAnimation(struct chrdata *chr); void chrStartPatrol(struct chrdata *chr, struct path *path); -bool chrCanSeeEntity(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3, u32 entitytype, u32 entityid); +bool chrCanSeeEntity(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3, u32 attackflags, u32 entityid); bool chrCanSeeAttackTarget(struct chrdata *chr, struct coord *pos, s16 *rooms, bool arg3); bool chrCanSeeChr(struct chrdata *chr, struct chrdata *target, s16 *room); bool chrHasLineOfSightToPos(struct chrdata *viewerchr, struct coord *pos, s16 *rooms); @@ -247,11 +247,11 @@ bool chrCanSeeTarget(struct chrdata *chr); void chrRecordLastSeeTargetTime(struct chrdata *chr); void chrRecordLastHearTargetTime(struct chrdata *chr); bool chrIsDead(struct chrdata *chr); -bool chrTryAttackStand(struct chrdata *chr, s32 entitytype, s32 entityid); -bool chrTryAttackKneel(struct chrdata *chr, s32 entitytype, s32 entityid); -bool chrTryAttackLie(struct chrdata *chr, s32 entitytype, s32 entityid); -bool chrTryModifyAttack(struct chrdata *chr, u32 entitytype, s32 entityid); -bool chrFaceEntity(struct chrdata *chr, u32 entitytype, u32 entityid); +bool chrTryAttackStand(struct chrdata *chr, u32 attackflags, s32 entityid); +bool chrTryAttackKneel(struct chrdata *chr, u32 attackflags, s32 entityid); +bool chrTryAttackLie(struct chrdata *chr, u32 attackflags, s32 entityid); +bool chrTryModifyAttack(struct chrdata *chr, u32 attackflags, s32 entityid); +bool chrFaceEntity(struct chrdata *chr, u32 attackflags, u32 entityid); bool chrSetPath(struct chrdata *chr, u32 path_id); bool chrTryStartPatrol(struct chrdata *chr); bool chrTrySurrender(struct chrdata *chr); @@ -266,7 +266,7 @@ bool chrTrySurprisedLookAround(struct chrdata *chr); bool chrTryKneel(struct chrdata *chr); bool chrTryStartAnim(struct chrdata *chr, s32 animfnum, f32 startframe, f32 endframe, u8 flags, s32 arg5, f32 speed); bool chrTryStartAlarm(struct chrdata *chr, s32 pad_id); -s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 entitytype, u32 entityid); +s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 attackflags, u32 entityid); void chrTickKneel(struct chrdata *chr); void chrFadeCorpse(struct chrdata *chr); void chrEnableReap(struct chrdata *chr); diff --git a/src/include/game/chr/chrai.h b/src/include/game/chr/chrai.h index da9af8788..9f3d27604 100644 --- a/src/include/game/chr/chrai.h +++ b/src/include/game/chr/chrai.h @@ -6,7 +6,7 @@ s32 chraiGetListIdByList(u8 *ailist, bool *is_global); u32 chraiGoToLabel(u8 *ailist, u32 aioffset, u8 label); -void chraiExecute(void *entity, s32 entity_type); +void chraiExecute(void *entity, s32 proptype); u32 chraiGetCommandLength(u8 *ailist, u32 aioffset); #endif diff --git a/src/include/types.h b/src/include/types.h index 840aeb171..e66ff36ea 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -1005,8 +1005,8 @@ struct tilething { struct act_stand { /*0x2c*/ s32 unk02c; - /*0x30*/ u32 face_entitytype; - /*0x34*/ s32 face_entityid; + /*0x30*/ u32 flags; + /*0x34*/ s32 entityid; /*0x38*/ u32 unk038; /*0x3c*/ s32 unk03c; /*0x40*/ u32 unk040; @@ -1090,7 +1090,7 @@ struct act_attack { /*0x40*/ u32 unk040; /*0x44*/ u32 unk044; /*0x48*/ u32 unk048; - /*0x4c*/ u32 entitytype; + /*0x4c*/ u32 flags; /*0x50*/ u32 entityid; /*0x54*/ u32 unk054; /*0x58*/ u32 unk058; @@ -1189,7 +1189,7 @@ struct act_surprised { }; struct act_throwgrenade { - /*0x2c*/ u32 entitytype; + /*0x2c*/ u32 flags; /*0x30*/ u32 entityid; /*0x34*/ u32 hand; /*0x38*/ bool needsequip;