Add comments where sound IDs are used and improve documentation for say_quip AI command

This commit is contained in:
Ryan Dwyer 2020-05-20 22:49:08 +10:00
parent ff0420aa3a
commit f6867e37df
28 changed files with 985 additions and 913 deletions

View File

@ -3774,7 +3774,7 @@ u8 func042f_surrendering_guard[] = {
// Be surprised
label(0x2c)
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!"
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, 0x00, 0x10, CHR_SELF, 2)
// Wait 1 second
@ -3803,7 +3803,7 @@ u8 func042f_surrendering_guard[] = {
// Warn
label(0x57)
dprint 'W','A','R','N',' ','F','R','I','E','N','D','S','\n',0,
say_quip(CHR_BOND, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) // "Intruder alert!","We've got trouble","We've got problems"
say_quip(CHR_BOND, QUIP_WARNFRIENDS, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
increase_squadron_alertness(100)
// No chr in same group, or follow through from above

View File

@ -897,7 +897,7 @@ u8 func0406_general_combat[] = {
endloop(0x0b)
label(0x00)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -915,8 +915,8 @@ u8 func0406_general_combat[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x00)
if_num_times_shot_lt(1, /*goto*/ 0x00)
if_timer_lt(20, /*goto*/ 0x00)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x00)
if_chr_stopped(/*goto*/ 0x21)
@ -993,11 +993,11 @@ u8 func0406_general_combat[] = {
if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x20)
set_self_flag_bankx(CHRFLAG0_00000004, BANK_0)
if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x00)
say_quip(CHR_BOND, 0x1b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEARCHSUCCESS, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
goto_next(0x20)
label(0x00)
say_quip(CHR_BOND, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
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_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x12)
@ -1009,13 +1009,13 @@ u8 func0406_general_combat[] = {
label(0x13)
if_chr_injured_target(CHR_SELF, /*goto*/ 0x20)
say_quip(CHR_BOND, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER1, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER2, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(0x00)
label(0x20)
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
label(0x00)
goto_first(0x14)
@ -1024,7 +1024,7 @@ u8 func0406_general_combat[] = {
if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x1c)
set_self_flag_bankx(CHRFLAG0_00000004, BANK_0)
if_stage_flag_eq(STAGEFLAG_FOYER_LIGHTS_RESTORED, TRUE, /*goto*/ 0x1c)
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
beginloop(0x1c)
chr_toggle_p1p2(CHR_SELF)
@ -1061,7 +1061,7 @@ u8 func0406_general_combat[] = {
label(0x17)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x16)
label(0x16)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x00)
goto_next(0x20)
label(0x00)

View File

@ -1750,7 +1750,7 @@ u8 func041f_trent_shooting[] = {
label(0xa8)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xa7)
label(0xa7)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0a)
goto_next(0x31)

View File

@ -1163,8 +1163,8 @@ u8 func0407_stewardess[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x02)
if_num_times_shot_lt(1, /*goto*/ 0x02)
if_timer_lt(20, /*goto*/ 0x02)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x02)
if_chr_stopped(/*goto*/ 0x4c)

View File

@ -1611,7 +1611,7 @@ u8 func0411_labtech_alerted[] = {
label(0x41)
increase_squadron_alertness(100)
say_quip(CHR_BOND, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_WARNFRIENDS, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
label(0x42)
go_to_target_pad(SPEED_RUN)
@ -1902,7 +1902,7 @@ u8 func0401_pilot[] = {
// Seen player
label(0x07)
say_quip(CHR_BOND, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SURRENDER, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00)
label(0x04)
increase_squadron_alertness(100)
@ -1943,7 +1943,7 @@ u8 func0401_pilot[] = {
// GPS disabled
label(0x04)
say_quip(CHR_BOND, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SURRENDER, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00)
goto_first(0x0b)
label(0x07)

View File

@ -5278,13 +5278,13 @@ u8 func0416_holo_guard_unarmed_alert2[] = {
label(0x06)
if_chr_injured_target(CHR_SELF, /*goto*/ 0x2f)
say_quip(CHR_BOND, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER1, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER2, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(0x06)
label(0x2f)
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0f)
set_stage_flag(STAGEFLAG_GENERAL_PURPOSE)
set_stage_flag(STAGEFLAG_HOLO_FAILED)
@ -5621,8 +5621,8 @@ u8 func0419_holo_guard_armed_alert[] = {
label(0x06)
goto_first(0x8f)
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
label(0x2f)
if_stage_flag_eq(STAGEFLAG_GENERAL_PURPOSE, TRUE, /*goto*/ 0x0d)
set_stage_flag(STAGEFLAG_GENERAL_PURPOSE)

View File

@ -2866,7 +2866,7 @@ u8 func0402_k7_guard[] = {
label(0x2f)
try_aim_and_shoot_thing2(0x0008, 0x0159, /*goto*/ 0x2f)
label(0x2f)
say_quip(CHR_BOND, 0x00, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x32, 0x02, 0xff, BANK_0, 0x00, 0x00)
beginloop(0x08)
chr_toggle_p1p2(CHR_SELF)

View File

@ -1531,7 +1531,7 @@ u8 func0402_taker[] = {
// Laptop gun equipped
label(0x0b)
set_self_flag_bankx(CHRFLAG0_00002000, BANK_0)
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
restart_timer
chr_do_animation(0x0202, 0, -1, 0x10, 0x0a, CHR_SELF, 2)

View File

@ -1901,7 +1901,7 @@ u8 func041f_holoclone[] = {
yield \
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xb9) \
label(0xb9) \
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) \
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) \
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0a) \
\
beginloop(0x0a) \
@ -2368,7 +2368,7 @@ u8 func0432_taker_attack[] = {
yield
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xb9)
label(0xb9)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x0a)
beginloop(0x0a)

View File

@ -2971,7 +2971,7 @@ u8 func0421_bridge_skedar[] = {
endloop(0x53)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -3018,7 +3018,7 @@ u8 func0421_bridge_skedar[] = {
set_view_distance(100)
if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2c)
set_self_flag_bankx(CHRFLAG0_00000004, BANK_0)
say_quip(CHR_BOND, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
label(0x2c)
goto_next(0xca)
@ -3087,7 +3087,7 @@ u8 func0421_bridge_skedar[] = {
if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x60)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0xb1)
label(0xb1)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x06)
goto_next(0x2c)

View File

@ -1314,7 +1314,7 @@ u8 func0410_labtech_showers_sa_pa[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -1330,8 +1330,8 @@ u8 func0410_labtech_showers_sa_pa[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x58)
@ -1696,7 +1696,7 @@ u8 func0418_doorman[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -1915,7 +1915,7 @@ u8 func041a_labtech_harrysmate[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -1930,8 +1930,8 @@ u8 func041a_labtech_harrysmate[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x58)
@ -2015,7 +2015,7 @@ u8 func041b_labtech_keycardguy[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -2032,8 +2032,8 @@ u8 func041b_labtech_keycardguy[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x58)
@ -2269,7 +2269,7 @@ u8 func0413_mechanic[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -2285,8 +2285,8 @@ u8 func0413_mechanic[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x58)
@ -2575,7 +2575,7 @@ u8 func041f_labtech_lights[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -2591,8 +2591,8 @@ u8 func041f_labtech_lights[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x5e)
@ -2797,7 +2797,7 @@ u8 func0420_labtech_doors[] = {
goto_next(0x2d)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -2812,8 +2812,8 @@ u8 func0420_labtech_doors[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x5e)
@ -2885,7 +2885,7 @@ u8 func0420_labtech_doors[] = {
label(0x2d)
do_preset_animation(3)
say_quip(CHR_BOND, 0x1d, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GREETING, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_08000000, BANK_0)
beginloop(0x7b)
@ -3016,7 +3016,7 @@ u8 func0422_labtech_records[] = {
goto_first(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
label(0x2d)
@ -3029,8 +3029,8 @@ u8 func0422_labtech_records[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x06)
if_num_times_shot_lt(1, /*goto*/ 0x06)
if_timer_lt(20, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x06)
if_chr_stopped(/*goto*/ 0x5e)

View File

@ -2950,7 +2950,7 @@ u8 func0421_activate_autogun[] = {
set_ailist(CHR_SELF, GAILIST_ALERTED)
label(0x0e)
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
restart_timer
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, 0x00, 0x10, CHR_SELF, 2)

View File

@ -3427,7 +3427,7 @@ u8 func040f_miniskedar[] = {
endloop(0x10)
label(0x2e)
say_quip(CHR_BOND, 0x05, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GRENADE2, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
set_ailist(CHR_SELF, GAILIST_IDLE)
// Alive
@ -3479,7 +3479,7 @@ u8 func040f_miniskedar[] = {
endloop(0x0b)
label(0x06)
say_quip(CHR_BOND, 0x04, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_RETREAT1, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
if_distance_to_target_lt(200, /*goto*/ 0x2f)
miniskedar_try_pounce(0x04, 0x000e, /*goto*/ 0x34)
reloop(0x03)

View File

@ -1778,8 +1778,8 @@ u8 func0413_taker[] = {
label(0x06)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x08)
label(0x08)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
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)
restart_timer
beginloop(0x09)
@ -2741,7 +2741,7 @@ u8 func041e_blonde[] = {
endloop(0x54)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -2777,7 +2777,7 @@ u8 func041e_blonde[] = {
label(0x6a)
if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d)
set_self_flag_bankx(CHRFLAG0_00000004, BANK_0)
say_quip(CHR_BOND, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
label(0x2d)
goto_next(0x6c)
@ -2842,7 +2842,7 @@ u8 func041e_blonde[] = {
goto_first(0x6a)
label(0x6c)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x06)
label(0x06)
goto_first(0x6d)
@ -2853,7 +2853,7 @@ u8 func041e_blonde[] = {
label(0x76)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x74)
label(0x74)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x06)
goto_next(0x2d)
label(0x06)
@ -2918,7 +2918,7 @@ u8 func0420_trent_attacking[] = {
label(0x76)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x74)
label(0x74)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x08)
goto_next(0x2d)

View File

@ -545,7 +545,7 @@ u8 func0402_unarmed_skedar[] = {
label(0x2e)
call_rng
if_rand_gt(1, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x03, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GRENADE1, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00)
label(0x06)
endloop(0x03)
@ -559,7 +559,7 @@ u8 func0402_unarmed_skedar[] = {
if_enemy_distance_lt_and_los(2540, /*goto*/ 0x2e)
label(0x2e)
set_chr_cloaked(CHR_SELF, FALSE, TRUE)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
if_distance_to_target_lt(150, /*goto*/ 0x2f)
label(0x54)
if_num_times_shot_lt(1, /*goto*/ 0x2d)
@ -569,7 +569,7 @@ u8 func0402_unarmed_skedar[] = {
label(0x2d)
restart_timer
set_action(MA_WAITING, TRUE)
say_quip(CHR_BOND, 0x03, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GRENADE1, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
try_walk_to_target(/*goto*/ 0x08)
beginloop(0x08)
@ -584,7 +584,7 @@ u8 func0402_unarmed_skedar[] = {
goto_next(0x2d)
label(0x06)
say_quip(CHR_BOND, 0x01, 0x20, 0x00, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0x20, 0x00, 0xff, BANK_0, 0x00, 0x00)
label(0x2d)
restart_timer
set_action(MA_TRACKING, TRUE)
@ -761,7 +761,7 @@ u8 func0404_miniskedar[] = {
// Healthy
call_rng
say_quip(CHR_BOND, 0x06, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_RETREAT2, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00)
label(0x06)
label(0x06)
goto_next(0x54)
@ -892,7 +892,7 @@ u8 func0408_cloaked_skedar[] = {
// 1 in 256 chance of making skedar roar sound
call_rng
if_rand_gt(1, /*goto*/ 0x06)
say_quip(CHR_BOND, 0x03, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GRENADE1, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00)
label(0x06)
endloop(0x08)
@ -1674,7 +1674,7 @@ u8 func0409_reaper_slayer_skedar[] = {
endloop(0x5d)
label(0x06)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -1731,7 +1731,7 @@ u8 func0409_reaper_slayer_skedar[] = {
set_view_distance(100)
if_self_flag_bankx_eq(CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d)
set_self_flag_bankx(CHRFLAG0_00000004, BANK_0)
say_quip(CHR_BOND, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
label(0x2d)
goto_next(0x71)
@ -1802,7 +1802,7 @@ u8 func0409_reaper_slayer_skedar[] = {
if_self_flag_bankx_eq(CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x72)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x70)
label(0x70)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x06)
goto_next(0x2d)
@ -2041,10 +2041,10 @@ u8 func040d_king_combat[] = {
endloop(0x7a)
label(0x06)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing1(0x0220, 0x0000, /*goto*/ 0x70)
label(0x70)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0x7b)
goto_next(0x2d)
@ -2066,7 +2066,7 @@ u8 func040d_king_combat[] = {
// Spawn skedar
//
label(LABEL_SPAWN_SKEDAR)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_morale(0)
restart_timer
chr_do_animation(0x0350, 0, -1, 0x10, 0x10, CHR_SELF, 2)
@ -2085,7 +2085,7 @@ u8 func040d_king_combat[] = {
// Spawn miniskedar
//
label(LABEL_SPAWN_MINISKEDAR)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_morale(0)
restart_timer
chr_do_animation(0x0350, 0, -1, 0x10, 0x10, CHR_SELF, 2)
@ -2104,7 +2104,7 @@ u8 func040d_king_combat[] = {
// Cloak and warp to player for hand combat
//
label(LABEL_CLOAK)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_morale(0)
restart_timer
chr_do_animation(0x0350, 0, -1, 0x10, 0x10, CHR_SELF, 2)
@ -2154,7 +2154,7 @@ u8 func040d_king_combat[] = {
// Distance to player < 150
label(0x06)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_chr_cloaked(CHR_SELF, FALSE, TRUE)
restart_timer
dprint 'F','A','C','E',' ','T','A','R','G','E','T','\n',0,
@ -2210,7 +2210,7 @@ u8 func040d_king_combat[] = {
// Unreachable - nothing jumps here
label(0x77)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_morale(0)
restart_timer
chr_do_animation(0x0350, 0, -1, 0x10, 0x10, CHR_SELF, 2)
@ -2225,7 +2225,7 @@ u8 func040d_king_combat[] = {
// Shield < 20
label(LABEL_LOW_SHIELD)
say_quip(CHR_BOND, 0x02, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GOTOCOVER1, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
jog_to_pad(0x0096)
beginloop(0x7d)

View File

@ -4314,6 +4314,7 @@ void chrCloak(struct chrdata *chr, bool value)
chr->hidden |= CHRHFLAG_CLOAKED;
if (value) {
// Cloak sound
func0f0939f8(0, chr->prop, 0x5b, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
}
}
@ -4325,10 +4326,8 @@ void chrUncloak(struct chrdata *chr, bool value)
chr->hidden &= ~CHRHFLAG_CLOAKED;
if (value) {
func0f0939f8(0, chr->prop, 92, -1,
-1, 0, 0, 0,
0, -1, 0, -1,
-1, -1, -1);
// Uncloak sound
func0f0939f8(0, chr->prop, 0x5c, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
}
#if PIRACYCHECKS

View File

@ -16464,8 +16464,24 @@ void chrTickDie(struct chrdata *chr)
{
struct animdata *animdata = chr->animdata;
u32 race = CHRRACE(chr);
u16 uStack32[] = { 0x808d, 0x808e, 0x808f, 0x8090, 0x8091, 0x8092, 0x8093, 0x8094, 0x8095, 0x8096, 0x8097 };
u16 uStack56[] = { 0x8129, 0x812f, 0x813a, 0x813a, 0x812f, 0x8092, 0x8093, 0x8094, 0x8095, 0x8096, 0x8097 };
// Thud noises - probably bodies hitting the floor
u16 thuds[] = { 0x808d, 0x808e, 0x808f, 0x8090, 0x8091, 0x8092, 0x8093, 0x8094, 0x8095, 0x8096, 0x8097 };
u16 uStack56[] = {
0x8129, // "Noooo!"
0x812f, // Death scream
0x813a, // "Noooo!"
0x813a, // "Noooo!"
0x812f, // Death scream
0x8092, // Thud
0x8093, // Thud
0x8094, // Thud
0x8095, // Thud
0x8096, // Thud
0x8097, // Thud
};
static s32 animindex = 0;
if (race == RACE_EYESPY) {
@ -16484,6 +16500,7 @@ void chrTickDie(struct chrdata *chr)
struct prop *prop = chr->prop;
if (var8006807c > 120 && chr->voicebox) {
// Dr Caroll death phrases
u16 psStack76[] = { 0x024d, 0x024e, 0x024f, 0x0256, 0x0257, 0x0258 };
func0f0939f8(NULL, chr->prop, psStack76[random() % 5], -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
@ -16505,7 +16522,8 @@ void chrTickDie(struct chrdata *chr)
} else if (chr->soundtimer > (s32)var80068080) {
chr->soundtimer = 0;
var80068080 -= 5;
func0f0939f8(NULL, prop, 100, -1,
// Shield damage sound
func0f0939f8(NULL, prop, 0x64, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
func0f12f9f0(prop->rooms[0], prop, &prop->pos, 0, 0, 1);
}
@ -16516,7 +16534,7 @@ void chrTickDie(struct chrdata *chr)
// Human or Skedar
if (chr->act_die.unk030 >= 0 && animGetFrame(animdata) >= chr->act_die.unk030) {
if (chr->specialdie == 0) {
func0f0939f8(NULL, chr->prop, uStack32[animindex], -1,
func0f0939f8(NULL, chr->prop, thuds[animindex], -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
} else if (chr->specialdie != SPECIALDIE_OVERRAILING) {
func0f0939f8(NULL, chr->prop, uStack56[chr->specialdie - 1], -1,
@ -16537,7 +16555,7 @@ void chrTickDie(struct chrdata *chr)
func0f0939f8(NULL, chr->prop, 0x808e, -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
} else {
func0f0939f8(NULL, chr->prop, uStack32[animindex], -1,
func0f0939f8(NULL, chr->prop, thuds[animindex], -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
}
@ -16753,26 +16771,26 @@ glabel chrTickDruggedComingUp
void chrTickDruggedDrop(struct chrdata *chr)
{
struct animdata *animdata = chr->animdata;
s16 things[11] = {
-32627,
-32626,
-32625,
-32624,
-32623,
-32622,
-32621,
-32620,
-32619,
-32618,
-32617,
u16 thuds[11] = {
0x808d,
0x808e,
0x808f,
0x8090,
0x8091,
0x8092,
0x8093,
0x8094,
0x8095,
0x8096,
0x8097,
};
static s32 index = 0;
if (chr->act_druggeddrop.unk030 >= 0 && animGetFrame(animdata) >= chr->act_druggeddrop.unk030) {
func0f0939f8(NULL, chr->prop, things[index], -1,
-1, 0, 0, 0,
0, -1, 0, -1,
-1, -1, -1);
func0f0939f8(NULL, chr->prop, thuds[index], -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
index++;
@ -16784,10 +16802,8 @@ void chrTickDruggedDrop(struct chrdata *chr)
}
if (chr->act_druggeddrop.unk034 >= 0 && animGetFrame(animdata) >= chr->act_druggeddrop.unk034) {
func0f0939f8(NULL, chr->prop, things[index], -1,
-1, 0, 0, 0,
0, -1, 0, -1,
-1, -1, -1);
func0f0939f8(NULL, chr->prop, thuds[index], -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
index++;
@ -32490,7 +32506,8 @@ bool func0f04d44c(struct chrdata *chr)
void chrEmitSparks(struct chrdata *chr)
{
if (chr && chr->prop) {
func0f0939f8(0, chr->prop, 100, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
// Spark/shield sound
func0f0939f8(0, chr->prop, 0x64, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);
func0f12f9f0(chr->prop->rooms[0], chr->prop, &chr->prop->pos, 0, 0, 1);
}
}

View File

@ -7373,222 +7373,222 @@ bool ai012f(void)
s16 g_GuardQuipBank[][4] = {
// Voicebox 0
{ 0, 0x027b, 0x027b, 0x027c },
{ 1, 0x027d, 0x027e, 0x027f },
{ 2, 0x028a, 0x028b, 0x028c },
{ 3, 0x035b, 0x035c, 0x035d },
{ 4, 0x0290, 0x80fb, 0x0292 },
{ 5, 0x0293, 0x0294, 0x029d },
{ 6, 0x0297, 0x0298, 0x0299 },
{ 7, 0x029a, 0x029b, 0x029c },
{ 8, 0x02a7, 0x02a8, 0x02a9 },
{ 9, 0x026b, 0x026c, 0x026d },
{ 10, 0x0037, 0x0037, 0x0037 },
{ 11, 0x0264, 0x0265, 0x0266 },
{ 12, 0x80f7, 0x80f7, 0x80f8 },
{ 13, 0x025e, 0x025f, 0x0260 },
{ 14, 0x0261, 0x0262, 0x0263 },
{ 15, 0x02a3, 0x02a4, 0x02a5 },
{ 16, 0x0272, 0x0273, 0x0274 },
{ 34, 0x0037, 0x0037, 0x0037 },
{ 18, 0x025b, 0x025c, 0x025c },
{ 19, 0x026e, 0x026f, 0x0270 },
{ 20, 0x0037, 0x0037, 0x0037 },
{ 21, 0x0280, 0x0281, 0x0282 },
{ 22, 0x80f9, 0x80f9, 0x0287 },
{ 23, 0x80fa, 0x80fa, 0x0289 },
{ 24, 0x028d, 0x028e, 0x028f },
{ 25, 0x80fc, 0x80fd, 0x02a2 },
{ 26, 0x0037, 0x0037, 0x0037 },
{ 27, 0x0275, 0x0277, 0x0278 },
{ 28, 0x8167, 0x04c9, 0x04ca },
{ 29, 0x815d, 0x815e, 0x815f },
{ 30, 0x1aa0, 0x1aa1, 0x1aa2 },
{ 31, 0x0037, 0x1aa3, 0x1aa4 },
{ 32, 0x1aa5, 0x1aa5, 0x1aa6 },
{ 33, 0x04c6, 0x04c6, 0x04c6 },
{ 34, 0x04c7, 0x04c7, 0x04c7 },
{ 35, 0x04cb, 0x04cb, 0x04cc },
{ 36, 0x027b, 0x027b, 0x027d },
{ 37, 0x027b, 0x027d, 0x027d },
{ 38, 0x02a3, 0x02a4, 0x02a5 },
{ 39, 0x04c6, 0x04c6, 0x04c6 },
{ 40, 0x1aa6, 0x1aa6, 0x1aa6 },
{ QUIP_ATTACK1, 0x027b, 0x027b, 0x027c }, // "I've got a clear shot", "She's mine"
{ QUIP_ATTACK2, 0x027d, 0x027e, 0x027f }, // "Open fire", "Wipe her out", "Waste her"
{ QUIP_GOTOCOVER1, 0x028a, 0x028b, 0x028c }, // "Cover me", "Watch my back", "Take cover"
{ QUIP_GRENADE1, 0x035b, 0x035c, 0x035d }, // "Look out, look out", "It's a grenade", "Clear the area"
{ QUIP_RETREAT1, 0x0290, 0x80fb, 0x0292 }, // "Go to plan B", "Get the hell out of here", "Retreat"
{ QUIP_GRENADE2, 0x0293, 0x0294, 0x029d }, // "Catch", "Everybody down", "Grenade"
{ QUIP_RETREAT2, 0x0297, 0x0298, 0x0299 }, // "Fall back", "Everyone back off", "Withdraw"
{ QUIP_FLANK, 0x029a, 0x029b, 0x029c }, // "Flank the target", "Let's split up", "Surround her"
{ QUIP_SURRENDER, 0x02a7, 0x02a8, 0x02a9 }, // "Please, don't shoot me", "I give up", "You win, I surrender"
{ QUIP_HEARNOISE, 0x026b, 0x026c, 0x026d }, // "Did you hear that?", "What's that noise?", "I heard a noise"
{ QUIP_10, 0x0037, 0x0037, 0x0037 },
{ QUIP_SEEPLAYER, 0x0264, 0x0265, 0x0266 }, // "Hey, you", "Intruder alert", "We've got a contact"
{ QUIP_SHOTUNALERT, 0x80f7, 0x80f7, 0x80f8 }, // "Holy shh", "What the hell?"
{ QUIP_INJURED1, 0x025e, 0x025f, 0x0260 }, // "Medic!", "Ow!", "You shot me!"
{ QUIP_INJURED2, 0x0261, 0x0262, 0x0263 }, // "I'm hit, I'm hit!", "I'm taking fire!", "Taking damage!"
{ QUIP_KILLEDPLAYER1, 0x02a3, 0x02a4, 0x02a5 }, // "Grab a body bag", "One for the morgue", "Rest in peace"
{ QUIP_WARNFRIENDS, 0x0272, 0x0273, 0x0274 }, // "Intruder alert", "We've got trouble", "We've got problems"
{ QUIP_GOFORALARM, 0x0037, 0x0037, 0x0037 },
{ QUIP_SURPRISED, 0x025b, 0x025c, 0x025c }, // "What the?", "Who the?"
{ QUIP_INSPECTBODY, 0x026e, 0x026f, 0x0270 }, // "Are you okay?", "Got a man down!", "He's bought it"
{ QUIP_20, 0x0037, 0x0037, 0x0037 },
{ QUIP_HITPLAYER, 0x0280, 0x0281, 0x0282 }, // "Give it up!", "Surrender, now!", "Take that!"
{ QUIP_MISSEDPLAYER1, 0x80f9, 0x80f9, 0x0287 }, // "Damn it, missed", "How did I miss?"
{ QUIP_MISSEDPLAYER2, 0x80fa, 0x80fa, 0x0289 }, // "God sake, someone hit her", "She's a tricky one"
{ QUIP_GOTOCOVER2, 0x028d, 0x028e, 0x028f }, // "Take cover", "I'll cover you", "Get down!"
{ QUIP_DIE, 0x80fc, 0x80fd, 0x02a2 }, // "You bitch", "Oh my god", "She got me"
{ QUIP_26, 0x0037, 0x0037, 0x0037 },
{ QUIP_SEARCHSUCCESS, 0x0275, 0x0277, 0x0278 }, // "I see her", "There she is", "There, movement"
{ QUIP_SEEEYESPY, 0x8167, 0x04c9, 0x04ca }, // "What the hell?", "Hello there", "What's this?"
{ QUIP_GREETING, 0x815d, 0x815e, 0x815f }, // "How's things?", "Hey there", "Hi, how are you?"
{ QUIP_ASKWEAPON1, 0x1aa0, 0x1aa1, 0x1aa2 }, // "Where did you get that?", "Should you have that?", "What are you doing with that weapon?"
{ QUIP_ASKWEAPON2, 0x0037, 0x1aa3, 0x1aa4 }, // "Don't point that at me", "Watch where you're pointing that"
{ QUIP_UNCOVERDISGUISE1, 0x1aa5, 0x1aa5, 0x1aa6 }, // "Imposter!", "It's a spy!"
{ QUIP_LOSTGUN, 0x04c6, 0x04c6, 0x04c6 }, // "My gun!"
{ QUIP_GOFORALARM, 0x04c7, 0x04c7, 0x04c7 }, // "Trigger the alarm"
{ QUIP_SEARCHFAIL, 0x04cb, 0x04cb, 0x04cc }, // "I'm sure I heard a noise", "I must be hearing things"
{ QUIP_ATTACK3, 0x027b, 0x027b, 0x027d }, // "I've got a clear shot", "Open fire!"
{ QUIP_ATTACK4, 0x027b, 0x027d, 0x027d }, // "I've got a clear shot", "Open fire!"
{ QUIP_KILLEDPLAYER2, 0x02a3, 0x02a4, 0x02a5 }, // "Grab a body bag", "One for the morgue", "Rest in peace"
{ QUIP_GUNJAMMED, 0x04c6, 0x04c6, 0x04c6 }, // "My gun!"
{ QUIP_UNCOVEREDDISGUISE2, 0x1aa6, 0x1aa6, 0x1aa6 }, // "It's a spy!"
// Voicebox 1
{ 0, 0x0322, 0x0323, 0x0324 },
{ 1, 0x0325, 0x0326, 0x0327 },
{ 2, 0x812e, 0x0335, 0x0336 },
{ 3, 0x035b, 0x035c, 0x035d },
{ 4, 0x033a, 0x033b, 0x033c },
{ 5, 0x033d, 0x033f, 0x0342 },
{ 6, 0x0343, 0x0344, 0x0345 },
{ 7, 0x0346, 0x0347, 0x0348 },
{ 8, 0x0349, 0x034a, 0x034b },
{ 9, 0x030e, 0x030f, 0x0310 },
{ 10, 0x0037, 0x0037, 0x0037 },
{ 11, 0x0306, 0x0307, 0x0308 },
{ 12, 0x0309, 0x8128, 0x030b },
{ 13, 0x8126, 0x0301, 0x0302 },
{ 14, 0x8127, 0x0304, 0x0305 },
{ 15, 0x0037, 0x0037, 0x0037 },
{ 16, 0x031c, 0x031d, 0x031e },
{ 34, 0x0037, 0x0037, 0x0037 },
{ 18, 0x8124, 0x8125, 0x02ff },
{ 19, 0x8129, 0x812a, 0x0316 },
{ 20, 0x031c, 0x031d, 0x031e },
{ 21, 0x0356, 0x0329, 0x0329 },
{ 22, 0x812b, 0x032f, 0x812c },
{ 23, 0x0331, 0x0332, 0x812d },
{ 24, 0x0337, 0x0338, 0x0339 },
{ 25, 0x812f, 0x034d, 0x034e },
{ 26, 0x0355, 0x0356, 0x0357 },
{ 27, 0x031f, 0x0320, 0x0321 },
{ 28, 0x04cf, 0x04d0, 0x04d1 },
{ 29, 0x8163, 0x8163, 0x8164 },
{ 30, 0x1ace, 0x1ace, 0x1acf },
{ 31, 0x1ad0, 0x1ad0, 0x1ad1 },
{ 32, 0x1ad2, 0x1ad2, 0x1ad3 },
{ 33, 0x8168, 0x8168, 0x8168 },
{ 34, 0x04ce, 0x04ce, 0x04ce },
{ 35, 0x04d2, 0x04d3, 0x04d3 },
{ 36, 0x0322, 0x0323, 0x0324 },
{ 37, 0x0324, 0x0327, 0x0327 },
{ 38, 0x0356, 0x0357, 0x035a },
{ 39, 0x812b, 0x032f, 0x812c },
{ 40, 0x1ad2, 0x1ad2, 0x1ad2 },
{ QUIP_ATTACK1, 0x0322, 0x0323, 0x0324 }, // "You made your last mistake", "What are you waiting for?", "Bring it on"
{ QUIP_ATTACK2, 0x0325, 0x0326, 0x0327 }, // "Take her down, men!", "Everybody, get her!", "Attack!"
{ QUIP_GOTOCOVER1, 0x812e, 0x0335, 0x0336 }, // "Cover my ass", "Cover me, now!", "I'm going for cover"
{ QUIP_GRENADE1, 0x035b, 0x035c, 0x035d }, // "Look out, look out!", "It's a grenade", "Clear the area"
{ QUIP_RETREAT1, 0x033a, 0x033b, 0x033c }, // "She's too good, run!", "Get some backup!", "Evacuate the area!"
{ QUIP_GRENADE2, 0x033d, 0x033f, 0x0342 }, // "Catch this", "Here, keep it", "Grenade!"
{ QUIP_RETREAT2, 0x0343, 0x0344, 0x0345 }, // "Withdraw, withdraw!", "Fall back!", "Everyone, get back!"
{ QUIP_FLANK, 0x0346, 0x0347, 0x0348 }, // "Surround her!", "Spread out!", "Split up!"
{ QUIP_SURRENDER, 0x0349, 0x034a, 0x034b }, // "Please don't", "Don't shoot", "I'm only doing my job"
{ QUIP_HEARNOISE, 0x030e, 0x030f, 0x0310 }, // "That sounded like...", "Gunfire!", "Someone's shooting!"
{ QUIP_10, 0x0037, 0x0037, 0x0037 },
{ QUIP_SEEPLAYER, 0x0306, 0x0307, 0x0308 }, // "Come here", "There's someone here", "Get her"
{ QUIP_SHOTUNALERT, 0x0309, 0x8128, 0x030b }, // "Whoa!", "My god", "Is that a bullet?"
{ QUIP_INJURED1, 0x8126, 0x0301, 0x0302 }, // "Oh my god", "I'm hit, I'm hit!", "I'm bleeding"
{ QUIP_INJURED2, 0x8127, 0x0304, 0x0305 }, // "Oh god I'm hit", "Help me out", "I'm in trouble"
{ QUIP_KILLEDPLAYER1, 0x0037, 0x0037, 0x0037 },
{ QUIP_WARNFRIENDS, 0x031c, 0x031d, 0x031e }, // "Look out, she's coming!", "Take cover!", "Look out, look out"
{ QUIP_GOFORALARM, 0x0037, 0x0037, 0x0037 },
{ QUIP_SURPRISED, 0x8124, 0x8125, 0x02ff }, // "Holy...", "What the hell?", "Wha?"
{ QUIP_INSPECTBODY, 0x8129, 0x812a, 0x0316 }, // "Noooo!", "Oh god he's dead!", "He's gone!"
{ QUIP_20, 0x031c, 0x031d, 0x031e }, // "Look out, she's coming!", "Take cover!", "Look out, look out"
{ QUIP_HITPLAYER, 0x0356, 0x0329, 0x0329 }, // "I'm just too good", "Yeah baby"
{ QUIP_MISSEDPLAYER1, 0x812b, 0x032f, 0x812c }, // "Bloody stupid gun", "My gun, it's useless", "Damn it"
{ QUIP_MISSEDPLAYER2, 0x0331, 0x0332, 0x812d }, // "Stop dodging", "Someone hit her", "Damn, she's good"
{ QUIP_GOTOCOVER2, 0x0337, 0x0338, 0x0339 }, // "Go for it", "Go go, go!", "Run!"
{ QUIP_DIE, 0x812f, 0x034d, 0x034e }, // Death scream, "Why me", choking
{ QUIP_26, 0x0355, 0x0356, 0x0357 }, // "Outstanding", "I'm just too good"
{ QUIP_SEARCHSUCCESS, 0x031f, 0x0320, 0x0321 }, // "Over there", "Halt", "Freeze"
{ QUIP_SEEEYESPY, 0x04cf, 0x04d0, 0x04d1 }, // "What is it?", "How did that get here?", "Don't touch it!"
{ QUIP_GREETING, 0x8163, 0x8163, 0x8164 }, // "Hi there", "How's things?"
{ QUIP_ASKWEAPON1, 0x1ace, 0x1ace, 0x1acf }, // "Where are you taking that weapon?", "Get that firearm approved, now!"
{ QUIP_ASKWEAPON2, 0x1ad0, 0x1ad0, 0x1ad1 }, // "Hey watch what you're doing with that", "Be careful!"
{ QUIP_UNCOVERDISGUISE1, 0x1ad2, 0x1ad2, 0x1ad3 }, // "Stop right there", "Drop the gun"
{ QUIP_LOSTGUN, 0x8168, 0x8168, 0x8168 }, // "Geez"
{ QUIP_GOFORALARM, 0x04ce, 0x04ce, 0x04ce }, // "Warn the others"
{ QUIP_SEARCHFAIL, 0x04d2, 0x04d3, 0x04d3 }, // "I can't see anybody", "There's no one here"
{ QUIP_ATTACK3, 0x0322, 0x0323, 0x0324 }, // "You made your last mistake", "What are you waiting for?", "Bring it on"
{ QUIP_ATTACK4, 0x0324, 0x0327, 0x0327 }, // "Bring it on", "Attack!"
{ QUIP_KILLEDPLAYER2, 0x0356, 0x0357, 0x035a }, // "I'm just too good", "Yee-ha, got one", "Another one bites the dust"
{ QUIP_GUNJAMMED, 0x812b, 0x032f, 0x812c }, // "Bloody stupid gun", "My gun, it's useless", "Damn it"
{ QUIP_UNCOVEREDDISGUISE2, 0x1ad2, 0x1ad2, 0x1ad2 }, // "Stop right there!"
// Voicebox 2
{ 0, 0x03e7, 0x03e8, 0x03e9 },
{ 1, 0x03ea, 0x03eb, 0x03ec },
{ 2, 0x03f9, 0x03fa, 0x03fb },
{ 3, 0x0420, 0x0421, 0x813d },
{ 4, 0x03ff, 0x8139, 0x0401 },
{ 5, 0x0403, 0x0405, 0x0407 },
{ 6, 0x0408, 0x0409, 0x040a },
{ 7, 0x040b, 0x040c, 0x040d },
{ 8, 0x040e, 0x040f, 0x0410 },
{ 9, 0x03d6, 0x03d6, 0x03d7 },
{ 10, 0x0037, 0x0037, 0x0037 },
{ 11, 0x03d0, 0x03d1, 0x8134 },
{ 12, 0x03d3, 0x8135, 0x03d5 },
{ 13, 0x8132, 0x03c8, 0x03c8 },
{ 14, 0x03cd, 0x03ce, 0x8133 },
{ 15, 0x0037, 0x0037, 0x0037 },
{ 16, 0x03e1, 0x03e2, 0x03e3 },
{ 34, 0x0037, 0x0037, 0x0037 },
{ 18, 0x03c4, 0x03c5, 0x03c6 },
{ 19, 0x03d9, 0x03da, 0x03db },
{ 20, 0x031c, 0x031d, 0x031e },
{ 21, 0x03ed, 0x03ee, 0x03ef },
{ 22, 0x8136, 0x03f4, 0x8137 },
{ 23, 0x8138, 0x03f7, 0x03f8 },
{ 24, 0x03fc, 0x03fd, 0x03fe },
{ 25, 0x813a, 0x813c, 0x0415 },
{ 26, 0x041b, 0x041c, 0x041d },
{ 27, 0x03e4, 0x03e5, 0x03e6 },
{ 28, 0x04d5, 0x04d6, 0x04d7 },
{ 29, 0x8165, 0x8165, 0x8166 },
{ 30, 0x1ad6, 0x1ad6, 0x1ad7 },
{ 31, 0x1ad8, 0x1ad8, 0x1ad9 },
{ 32, 0x1ada, 0x1ada, 0x1adb },
{ 33, 0x8168, 0x8168, 0x8168 },
{ 34, 0x04d4, 0x04d4, 0x04d4 },
{ 35, 0x04d8, 0x04d8, 0x04d9 },
{ 36, 0x03e7, 0x03e8, 0x03e9 },
{ 37, 0x03e8, 0x03eb, 0x03eb },
{ 38, 0x041b, 0x0417, 0x041d },
{ 39, 0x8134, 0x03f4, 0x8134 },
{ 40, 0x1adb, 0x1adb, 0x1adb },
// Voicebox 3
{ 0, 0x0396, 0x0396, 0x0396 },
{ 1, 0x0037, 0x0398, 0x0399 },
{ 2, 0x03a4, 0x0037, 0x03a6 },
{ 3, 0x03c1, 0x03c2, 0x03c2 },
{ 4, 0x03aa, 0x03ab, 0x03ac },
{ 5, 0x03ad, 0x03ae, 0x0037 },
{ 6, 0x03b0, 0x03b0, 0x03b1 },
{ 7, 0x0037, 0x03b3, 0x03b4 },
{ 8, 0x03b5, 0x03b5, 0x03b6 },
{ 9, 0x0037, 0x0389, 0x038a },
{ 10, 0x0000, 0x0000, 0x0000 },
{ 11, 0x0381, 0x0382, 0x0037 },
{ 12, 0x0385, 0x0037, 0x0387 },
{ 13, 0x0037, 0x037e, 0x037f },
{ 14, 0x037e, 0x037f, 0x0380 },
{ 15, 0x0000, 0x0000, 0x0000 },
{ 16, 0x0384, 0x0385, 0x0037 },
{ 34, 0x03aa, 0x03ab, 0x03ac },
{ 18, 0x0037, 0x037b, 0x037c },
{ 19, 0x038d, 0x038d, 0x038d },
{ 20, 0x0384, 0x0385, 0x0387 },
{ 21, 0x039a, 0x039b, 0x0037 },
{ 22, 0x039f, 0x0037, 0x03a1 },
{ 23, 0x03a1, 0x03a2, 0x8130 },
{ 24, 0x03a7, 0x0037, 0x03a9 },
{ 25, 0x03b7, 0x03b8, 0x8131 },
{ 26, 0x03be, 0x0037, 0x03c0 },
{ 27, 0x0381, 0x0382, 0x0037 },
{ 28, 0x0000, 0x0000, 0x0000 },
{ 29, 0x0037, 0x0396, 0x0037 },
{ 30, 0x0037, 0x0396, 0x0037 },
{ 31, 0x0037, 0x0396, 0x0037 },
{ 32, 0x0037, 0x0396, 0x0037 },
{ 33, 0x037b, 0x037c, 0x037b },
{ 34, 0x03aa, 0x03b1, 0x03ab },
{ 35, 0x0000, 0x0000, 0x0000 },
{ 36, 0x0396, 0x0396, 0x0399 },
{ 37, 0x0399, 0x0399, 0x0396 },
{ 38, 0x03bc, 0x03be, 0x03c0 },
{ 39, 0x039f, 0x039f, 0x039f },
{ 40, 0x0000, 0x0000, 0x0000 },
{ QUIP_ATTACK1, 0x03e7, 0x03e8, 0x03e9 }, // "Come on, man", "Die", "Take this"
{ QUIP_ATTACK2, 0x03ea, 0x03eb, 0x03ec }, // "Move in", "You're out of your league", "Let her have it"
{ QUIP_GOTOCOVER1, 0x03f9, 0x03fa, 0x03fb }, // "Help me out here", "Hey, distract her", "Keep her occupied"
{ QUIP_GRENADE1, 0x0420, 0x0421, 0x813d }, // "Get back, quick!", "We're gonna die!", "God, run!"
{ QUIP_RETREAT1, 0x03ff, 0x8139, 0x0401 }, // "Retreat!", "Let's get the hell out of here", "Get back, get back!"
{ QUIP_GRENADE2, 0x0403, 0x0405, 0x0407 }, // "Fire in the hole", "Here's a little present for ya", "Try this for size"
{ QUIP_RETREAT2, 0x0408, 0x0409, 0x040a }, // "Get out of the way!", "Fall back!", "Move out"
{ QUIP_FLANK, 0x040b, 0x040c, 0x040d }, // "Team up, guys", "Come on, around the side", "Scatter!"
{ QUIP_SURRENDER, 0x040e, 0x040f, 0x0410 }, // "I don't like this any more", "Don't hurt me", "You win, I give up"
{ QUIP_HEARNOISE, 0x03d6, 0x03d6, 0x03d7 }, // "Listen, gunshots", "Someone's nearby"
{ QUIP_10, 0x0037, 0x0037, 0x0037 },
{ QUIP_SEEPLAYER, 0x03d0, 0x03d1, 0x8134 }, // "Target sighted", "Come on, man", "God damn it"
{ QUIP_SHOTUNALERT, 0x03d3, 0x8135, 0x03d5 }, // "That was close", "Holy moly", "Ay caramba"
{ QUIP_INJURED1, 0x8132, 0x03c8, 0x03c8 }, // "Geez, that hurt", "Why you..."
{ QUIP_INJURED2, 0x03cd, 0x03ce, 0x8133 }, // "I'm injured", "I'm hit, I'm hit", "Damn it, I'm taking fire!"
{ QUIP_KILLEDPLAYER1, 0x0037, 0x0037, 0x0037 },
{ QUIP_WARNFRIENDS, 0x03e1, 0x03e2, 0x03e3 }, // "Watch out!", "Help me out", "We've got an intruder"
{ QUIP_GOFORALARM, 0x0037, 0x0037, 0x0037 },
{ QUIP_SURPRISED, 0x03c4, 0x03c5, 0x03c6 }, // "How the?", "Hey", "Stop"
{ QUIP_INSPECTBODY, 0x03d9, 0x03da, 0x03db }, // "Body count's too high!", "I never liked him anyway", "That was my best friend"
{ QUIP_20, 0x031c, 0x031d, 0x031e }, // "Look out, she's coming!", "Take cover!", "Look out, look out"
{ QUIP_HITPLAYER, 0x03ed, 0x03ee, 0x03ef }, // "Surrender or die", "I have you now", "You won't beat me"
{ QUIP_MISSEDPLAYER1, 0x8136, 0x03f4, 0x8137 }, // "Damn, missed again", "I don't believe it", "Damn you"
{ QUIP_MISSEDPLAYER2, 0x8138, 0x03f7, 0x03f8 }, // "Hell, she's good", "Stop moving", "No escape for you"
{ QUIP_GOTOCOVER2, 0x03fc, 0x03fd, 0x03fe }, // "Move it, move it", "Get to cover now", "Run for it"
{ QUIP_DIE, 0x813a, 0x813c, 0x0415 }, // "Noooo!", "Oh god, I'm dying", "I don't want to die"
{ QUIP_26, 0x041b, 0x041c, 0x041d }, // "I'm the man", "Boy that was close", "Did you see that?"
{ QUIP_SEARCHSUCCESS, 0x03e4, 0x03e5, 0x03e6 }, // "Get her!", "There, attack!", "Hey, you, stop!"
{ QUIP_SEEEYESPY, 0x04d5, 0x04d6, 0x04d7 }, // "Is it dangerous?", "Don't move", "Stay back"
{ QUIP_GREETING, 0x8165, 0x8165, 0x8166 }, // "Hello", "Hey, what's up?"
{ QUIP_ASKWEAPON1, 0x1ad6, 0x1ad6, 0x1ad7 }, // "Do you have permission for that?", "What are you doing with that gun?"
{ QUIP_ASKWEAPON2, 0x1ad8, 0x1ad8, 0x1ad9 }, // "Hey, that's dangerous", "Watch it, that thing could go off"
{ QUIP_UNCOVERDISGUISE1, 0x1ada, 0x1ada, 0x1adb }, // "Put your hands up", "It's a terrorist!"
{ QUIP_LOSTGUN, 0x8168, 0x8168, 0x8168 }, // "Geez"
{ QUIP_GOFORALARM, 0x04d4, 0x04d4, 0x04d4 }, // "Activate the alarm!"
{ QUIP_SEARCHFAIL, 0x04d8, 0x04d8, 0x04d9 }, // "I bet this is another drill", "Another false alarm"
{ QUIP_ATTACK3, 0x03e7, 0x03e8, 0x03e9 }, // "Come on, man", "Die", "Take this"
{ QUIP_ATTACK4, 0x03e8, 0x03eb, 0x03eb }, // "Die", "You're out of your league"
{ QUIP_KILLEDPLAYER2, 0x041b, 0x0417, 0x041d }, // "I'm the man", "It's all over for this one", "Did you see that?"
{ QUIP_GUNJAMMED, 0x8134, 0x03f4, 0x8134 }, // "God damn it", "I don't believe it"
{ QUIP_UNCOVEREDDISGUISE2, 0x1adb, 0x1adb, 0x1adb }, // "It's a terrorist!"
// Voicebox 3 (female)
{ QUIP_ATTACK1, 0x0396, 0x0396, 0x0396 }, // "Come on"
{ QUIP_ATTACK2, 0x0037, 0x0398, 0x0399 }, // "Everyone, get her", "Attack!"
{ QUIP_GOTOCOVER1, 0x03a4, 0x0037, 0x03a6 }, // "Cover me!", "Take cover!"
{ QUIP_GRENADE1, 0x03c1, 0x03c2, 0x03c2 }, // "Look out, look out!"
{ QUIP_RETREAT1, 0x03aa, 0x03ab, 0x03ac }, // "Get reinforcements!", "Evacuate the area", "Retreat!"
{ QUIP_GRENADE2, 0x03ad, 0x03ae, 0x0037 }, // "Catch this", "Time to die"
{ QUIP_RETREAT2, 0x03b0, 0x03b0, 0x03b1 }, // "Withdraw, withdraw!", "Fall back!"
{ QUIP_FLANK, 0x0037, 0x03b3, 0x03b4 }, // "Spread out", "Split up"
{ QUIP_SURRENDER, 0x03b5, 0x03b5, 0x03b6 }, // "Please dont", "Don't shoot"
{ QUIP_HEARNOISE, 0x0037, 0x0389, 0x038a }, // ???, "Someone's shooting"
{ QUIP_10, 0x0000, 0x0000, 0x0000 },
{ QUIP_SEEPLAYER, 0x0381, 0x0382, 0x0037 }, // "Get her!", "Hey, you, come here!"
{ QUIP_SHOTUNALERT, 0x0385, 0x0037, 0x0387 }, // "Under fire!", "We're under fire!"
{ QUIP_INJURED1, 0x0037, 0x037e, 0x037f }, // "I'm wounded", "Help me out"
{ QUIP_INJURED2, 0x037e, 0x037f, 0x0380 }, // "I'm wounded", "I'm in trouble!"
{ QUIP_KILLEDPLAYER1, 0x0000, 0x0000, 0x0000 },
{ QUIP_WARNFRIENDS, 0x0384, 0x0385, 0x0037 }, // "Target attacking", "Under fire!"
{ QUIP_GOFORALARM, 0x03aa, 0x03ab, 0x03ac }, // "Get reinforcements", "Evacuate the area", "Retreat!"
{ QUIP_SURPRISED, 0x0037, 0x037b, 0x037c }, // "Hey", "Huh?"
{ QUIP_INSPECTBODY, 0x038d, 0x038d, 0x038d }, // "Unit down"
{ QUIP_20, 0x0384, 0x0385, 0x0387 }, // "Target attacking", "Under fire!", "We're under fire!"
{ QUIP_HITPLAYER, 0x039a, 0x039b, 0x0037 }, // "Did that hurt?", "You want some more?"
{ QUIP_MISSEDPLAYER1, 0x039f, 0x0037, 0x03a1 }, // "This gun's useless", "Stand still"
{ QUIP_MISSEDPLAYER2, 0x03a1, 0x03a2, 0x8130 }, // "Stand still", "Someone hit her", "Damn, she's good"
{ QUIP_GOTOCOVER2, 0x03a7, 0x0037, 0x03a9 }, // "Go for it!", "Run!"
{ QUIP_DIE, 0x03b7, 0x03b8, 0x8131 }, // "Why me?", "Nooo!", "My god"
{ QUIP_26, 0x03be, 0x0037, 0x03c0 }, // "I'm just too good", "Such a waste"
{ QUIP_SEARCHSUCCESS, 0x0381, 0x0382, 0x0037 }, // "Get her!", "Hey, you, come here"
{ QUIP_SEEEYESPY, 0x0000, 0x0000, 0x0000 },
{ QUIP_GREETING, 0x0037, 0x0396, 0x0037 }, // "Come on"
{ QUIP_ASKWEAPON1, 0x0037, 0x0396, 0x0037 }, // "Come on"
{ QUIP_ASKWEAPON2, 0x0037, 0x0396, 0x0037 }, // "Come on"
{ QUIP_UNCOVERDISGUISE1, 0x0037, 0x0396, 0x0037 }, // "Come on"
{ QUIP_LOSTGUN, 0x037b, 0x037c, 0x037b }, // "Hey", "Huh?"
{ QUIP_GOFORALARM, 0x03aa, 0x03b1, 0x03ab }, // "Get reinforcements!", "Fall back!", "Evacuate the area"
{ QUIP_SEARCHFAIL, 0x0000, 0x0000, 0x0000 },
{ QUIP_ATTACK3, 0x0396, 0x0396, 0x0399 }, // "Come on", "Attack!"
{ QUIP_ATTACK4, 0x0399, 0x0399, 0x0396 }, // "Attack!", "Come on"
{ QUIP_KILLEDPLAYER2, 0x03bc, 0x03be, 0x03c0 }, // "Get a cleaner", "I'm just too good", "Such a waste"
{ QUIP_GUNJAMMED, 0x039f, 0x039f, 0x039f }, // "This gun's useless"
{ QUIP_UNCOVEREDDISGUISE2, 0x0000, 0x0000, 0x0000 },
};
s16 g_SpecialQuipBank[][4] = {
{ 0, 0x0af2, 0x0af3, 0x0af8 },
{ 1, 0x1aee, 0x1aef, 0x1aee },
{ 2, 0x023d, 0x023e, 0x0247 },
{ 3, 0x0248, 0x0249, 0x024b },
{ 4, 0x0246, 0x023f, 0x0240 },
{ 5, 0x024c, 0x0252, 0x0251 },
{ 6, 0x024f, 0x0258, 0x024d },
{ 7, 0x0243, 0x0244, 0x0245 },
{ 8, 0x1294, 0x1295, 0x1296 },
{ 9, 0x1297, 0x1298, 0x1297 },
{ 10, 0x1290, 0x127e, 0x8103 },
{ 11, 0x7324, 0x7325, 0x7326 },
{ 12, 0x128e, 0x1280, 0x1287 },
{ 13, 0x128d, 0x1283, 0x1286 },
{ 14, 0x1291, 0x1284, 0x128a },
{ 15, 0x1292, 0x1281, 0x1288 },
{ 16, 0x128b, 0x1282, 0x1289 },
{ 1, 0x1aee, 0x1aef, 0x1aee }, // Secretary: "Please don't kill me", "Don't shoot"
{ 2, 0x023d, 0x023e, 0x0247 }, // Dr Caroll: "Come on, come on", "My dear you're taking your time", "Come on my dear, we're going to get out of here now"
{ 3, 0x0248, 0x0249, 0x024b }, // Dr Caroll: "Do you actually know what you're doing", "Ooh, ...?", "We're going to the helipad I presume"
{ 4, 0x0246, 0x023f, 0x0240 }, // Dr Caroll: "I say over there, stop that", "What", "Ooh"
{ 5, 0x024c, 0x0252, 0x0251 }, // Dr Caroll: "Ooh-uh", "That's quite enough of that", "Wow"
{ 6, 0x024f, 0x0258, 0x024d }, // Dr Caroll: "I can't make it", "You were supposed to protect me", "Systems failure"
{ 7, 0x0243, 0x0244, 0x0245 }, // Dr Caroll: "Oh crikey", "Goodness gracious me", "Don't they know who I am"
{ 8, 0x1294, 0x1295, 0x1296 }, // Invest shock: "I'm not sure", "One more time", "I dunno"
{ 9, 0x1297, 0x1298, 0x1297 }, // Scientist: "And again", "Try it now"
{ 10, 0x1290, 0x127e, 0x8103 }, // Scientist: "What are you doing in my lab?", "I haven't seen you before", "Who the hell are you?"
{ 11, 0x7324, 0x7325, 0x7326 }, // Jo: "Shut down the experiments", "Pull the plug on that, now!", "Switch this thing off"
{ 12, 0x128e, 0x1280, 0x1287 }, // Scientist: "I'll shut it down", "Please, don't hurt me", "Allow me to assist you"
{ 13, 0x128d, 0x1283, 0x1286 }, // Scientist: "My experiments!", "There, the experiment is down", "Leave this area now!"
{ 14, 0x1291, 0x1284, 0x128a }, // Scientist: "Security!", "I'm calling security", "Accidents will happen"
{ 15, 0x1292, 0x1281, 0x1288 }, // Scientist: "How did that happen", "It looks like it's off already", "Have you been tampering with this?"
{ 16, 0x128b, 0x1282, 0x1289 }, // Scientist: "Someone's broken my equipment", "What's happened to the terminal?", "You vandal, you've broken it"
{ 17, 0x000d, 0x000d, 0x000d },
{ 18, 0x815d, 0x815e, 0x815f },
{ 19, 0x1aa0, 0x1aa1, 0x1aa2 },
{ 20, 0x0037, 0x1aa3, 0x1aa4 },
{ 21, 0x1aa5, 0x1aa5, 0x1aa6 },
{ 22, 0x0446, 0x0461, 0x0465 },
{ 23, 0x0447, 0x045d, 0x0466 },
{ 24, 0x814a, 0x045e, 0x0463 },
{ 25, 0x0444, 0x045f, 0x0468 },
{ 26, 0x0448, 0x0449, 0x0449 },
{ 27, 0x044b, 0x0459, 0x045a },
{ 28, 0x05be, 0x0515, 0x05bf },
{ 29, 0x044b, 0x0459, 0x045a },
{ 30, 0x044b, 0x0459, 0x045a },
{ 31, 0x1aeb, 0x1aeb, 0x1aeb },
{ 32, 0x1b35, 0x1b36, 0x1b37 },
{ 33, 0x1ac0, 0x1ac1, 0x1ac3 },
{ 34, 0x0446, 0x0461, 0x0000 },
{ 35, 0x0447, 0x045d, 0x0000 },
{ 36, 0x814a, 0x045e, 0x1aee },
{ 37, 0x0444, 0x045f, 0x0000 },
{ 38, 0x051b, 0x051c, 0x051d },
{ 39, 0x051e, 0x051f, 0x0520 },
{ 40, 0x0521, 0x0522, 0x0525 },
{ 41, 0x0523, 0x0523, 0x0524 },
{ 42, 0x1adb, 0x1aa6, 0x1ad2 },
{ 18, 0x815d, 0x815e, 0x815f }, // "How's things?", "Hey there", "Hi, how are you?"
{ 19, 0x1aa0, 0x1aa1, 0x1aa2 }, // "Where did you get that?", "Should you have that?", "What are you doing with that weapon?"
{ 20, 0x0037, 0x1aa3, 0x1aa4 }, // "Don't point that at me", "Watch where you're pointing that"
{ 21, 0x1aa5, 0x1aa5, 0x1aa6 }, // "Imposter!", "It's a spy!"
{ 22, 0x0446, 0x0461, 0x0465 }, // "Greetings, citizen", "Hey sugar, wanna party?", "Hey baby"
{ 23, 0x0447, 0x045d, 0x0466 }, // "How's it going?", "Whoa, take it easy there lady", wolf whistle
{ 24, 0x814a, 0x045e, 0x0463 }, // "Oh my god", "I don't want any trouble", "Here, take the wallet"
{ 25, 0x0444, 0x045f, 0x0468 }, // "There's a maniac on the loose", "Quick, down there, she's got a gun", "Help, get me out of here!"
{ 26, 0x0448, 0x0449, 0x0449 }, // "Guns don't scare me", "Keep away from this car"
{ 27, 0x044b, 0x0459, 0x045a }, // "Base, we have an intruder", "We have a code 2 situation", "Request backup immediately"
{ 28, 0x05be, 0x0515, 0x05bf }, // "You shouldn't have come here, girl", "Secure the perimeter", "We're taking over!"
{ 29, 0x044b, 0x0459, 0x045a }, // "Base, we have an intruder", "We have a code 2 situation", "Request backup immediately"
{ 30, 0x044b, 0x0459, 0x045a }, // "Base, we have an intruder", "We have a code 2 situation", "Request backup immediately"
{ 31, 0x1aeb, 0x1aeb, 0x1aeb }, // Robot: "Stop where you are"
{ 32, 0x1b35, 0x1b36, 0x1b37 }, // "Come back later, I'm busy", "Go away", "Look, I can't help you"
{ 33, 0x1ac0, 0x1ac1, 0x1ac3 }, // President: "Stop shooting!", "You sure this is the way to the escape pod?", "Why are they shooting at me?"
{ 34, 0x0446, 0x0461, 0x0000 }, // "Greetings, citizen", "Hey sugar, wanna party?"
{ 35, 0x0447, 0x045d, 0x0000 }, // "How's it going?", "Whoa, take it easy there lady"
{ 36, 0x814a, 0x045e, 0x1aee }, // "Oh my god", "I don't want any trouble", "Please don't kill me"
{ 37, 0x0444, 0x045f, 0x0000 }, // "There's a maniac on the loose", "Quick, down there, she's got a gun"
{ 38, 0x051b, 0x051c, 0x051d }, // Elvis: "In the name of intergalactic peace", "Eat hot lead, weirdos", "Kiss my alien butt"
{ 39, 0x051e, 0x051f, 0x0520 }, // Elvis: "I'll kick your ass", "I'm doing this for your own good", "You dare shoot at me?"
{ 40, 0x0521, 0x0522, 0x0525 }, // Elvis: "Don't mess with the Maian", "I'm bad", "He he"
{ 41, 0x0523, 0x0523, 0x0524 }, // Elvis: "Oh It's all going wrong", "Hey, watch the suit"
{ 42, 0x1adb, 0x1aa6, 0x1ad2 }, // "It's a terrorist!", "It's a spy!", "Stop right there!"
{ 43, 0x0af2, 0x0af8, 0x0af8 },
{ 44, 0x0525, 0x0525, 0x0525 },
{ 45, 0x1aec, 0x1aec, 0x1aec },
{ 44, 0x0525, 0x0525, 0x0525 }, // Elvis: "He he"
{ 45, 0x1aec, 0x1aec, 0x1aec }, // Robot: "Alert! Under attack"
};
s16 g_QuipTexts[][4] = {
@ -7615,9 +7615,9 @@ s16 g_SkedarQuipBank[][4] = {
};
s16 g_MaianQuipBank[][4] = {
{ 1, 0x05e2, 0x05e3, 0x05e4 },
{ 2, 0x05e5, 0x05e6, 0x05e7 },
{ 3, 0x05df, 0x05e0, 0x05e1 },
{ 1, 0x05e2, 0x05e3, 0x05e4 }, // laughter, mumble, mumble
{ 2, 0x05e5, 0x05e6, 0x05e7 }, // mumble, mumble, laughter
{ 3, 0x05df, 0x05e0, 0x05e1 }, // injuries
{ 0, 0x0000, 0x0000, 0x0000 },
};

View File

@ -82,7 +82,7 @@ u8 func0006_unalerted[] = {
// Injured or has no gun
label(0x16)
say_quip(CHR_BOND, 0x0c, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00)
dprint 'N','O','G','U','N',',','\n',0,
if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x06)
unset_self_flag_bankx(CHRFLAG1_DOINGIDLEANIMATION, BANK_1)
@ -130,7 +130,7 @@ u8 func0006_unalerted[] = {
label(0x16)
if_self_flag_bankx_eq(CHRFLAG1_WARNED, TRUE, BANK_1, /*goto*/ LABEL_SCAN_START)
say_quip(CHR_BOND, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00)
dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0,
if_self_flag_bankx_eq(CHRFLAG0_CANT_ALERT_GROUP, TRUE, BANK_0, /*goto*/ 0x13)
increase_squadron_alertness(100)
@ -367,14 +367,14 @@ u8 func0006_unalerted[] = {
if_chr_in_squadron_doing_action(MA_GOTOALARM, /*goto*/ 0x16)
if_self_flag_bankx_eq(CHRFLAG0_CAN_RUN_FOR_ALARM, TRUE, BANK_0, /*goto*/ 0x9f)
label(0x16)
say_quip(CHR_BOND, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Hey, you!","Intruder alert","We've got a contact!"
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x9f)
increase_squadron_alertness(100)
goto_next(0x77)
label(0xdb) // jumped to from below
label(0x14)
say_quip(CHR_BOND, 0x20, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Imposter!","It's a spy!"
say_quip(CHR_BOND, QUIP_UNCOVERDISGUISE1, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
increase_squadron_alertness(100)
goto_next(0x77)
@ -383,7 +383,7 @@ u8 func0006_unalerted[] = {
yield
yield
dprint 'S','3',0,
say_quip(CHR_BOND, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00)
increase_squadron_alertness(100)
goto_next(0x77)
@ -391,7 +391,7 @@ u8 func0006_unalerted[] = {
label(0x16)
set_chr_hiddenflag(CHR_TARGET, CHRHFLAG_PSYCHOSISED)
dprint 'S','U','R','P','R','I','S','E','D','!','\n',0,
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!"
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
restart_timer
if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, FALSE, BANK_1, /*goto*/ 0x16)
if_chr_idle_action_eq(IDLEACTION_SITTING_TYPING, /*goto*/ 0x13)
@ -424,7 +424,7 @@ u8 func0006_unalerted[] = {
yield
dprint 'S','7',0,
dprint 'H','E','A','R','D','E','T','E','C','T','\n',0,
say_quip(CHR_BOND, 0x09, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Did you hear that?","What's that noise?","I heard a noise..."
say_quip(CHR_BOND, QUIP_HEARNOISE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ LABEL_HEARSPAWN)
restart_timer
if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x80)
@ -482,7 +482,7 @@ u8 func0006_unalerted[] = {
//
label(LABEL_NEAR_MISS)
increase_self_alertness(100)
say_quip(CHR_BOND, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00)
set_target_chr(CHR_BOND)
if_within_units_of_sight(30, /*goto*/ 0x13)
goto_next(0x16)
@ -521,7 +521,7 @@ u8 func0006_unalerted[] = {
label(0x94)
label(0x16)
dprint 'S','U','R','P','R','I','S','E','D','!','\n',0,
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!"
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
restart_timer
if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x76)
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, 0x00, 0x10, CHR_SELF, 2)
@ -570,7 +570,7 @@ u8 func0006_unalerted[] = {
label(0x13)
if_self_flag_bankx_eq(CHRFLAG0_CAN_EXAMINE_BODY, FALSE, BANK_0, /*goto*/ 0x13)
if_timer_lt(120, /*goto*/ 0x13)
say_quip(CHR_BOND, 0x13, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Are you okay?","Got a man down!","He's bought it..."
say_quip(CHR_BOND, QUIP_INSPECTBODY, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
unset_self_flag_bankx(CHRFLAG0_CAN_EXAMINE_BODY, BANK_0)
label(0x13)
if_timer_gt(600, /*goto*/ 0x7d)
@ -741,7 +741,7 @@ u8 func0006_unalerted[] = {
label(0x13)
dprint 'W','A','R','N','E','D','B','E','N','D','3','\n',0,
if_self_flag_bankx_eq(CHRFLAG0_UNSURPRISABLE, FALSE, BANK_0, /*goto*/ 0x77)
say_quip(CHR_BOND, 0x12, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "What the?!","Who the?!"
say_quip(CHR_BOND, QUIP_SURPRISED, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
restart_timer
if_self_flag_bankx_eq(CHRFLAG1_DOINGIDLEANIMATION, TRUE, BANK_1, /*goto*/ 0x75)
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, 0x00, 0x10, CHR_SELF, 2)
@ -901,7 +901,7 @@ u8 func0007_alerted[] = {
endloop(0x1c)
label(0x16)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "You bitch!","Oh... my... god","She got me"
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
set_shotlist(GAILIST_IDLE)
set_ailist(CHR_SELF, GAILIST_IDLE)
@ -930,8 +930,8 @@ u8 func0007_alerted[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x16)
if_num_times_shot_lt(1, /*goto*/ 0x16)
if_timer_lt(20, /*goto*/ 0x16)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Medic!","Help!","You shot me?!"
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!"
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x16)
if_timer_gt(180, /*goto*/ 0x13)
@ -947,7 +947,7 @@ u8 func0007_alerted[] = {
dprint 'L','O','S','T',' ','M','Y',' ','G','U','N','\n',0,
label(0xac)
set_chr_dodge_rating(2, 0x00)
say_quip(CHR_BOND, 0x21, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "My gun!"
say_quip(CHR_BOND, QUIP_LOSTGUN, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
stop_chr
restart_timer
yield
@ -1098,11 +1098,11 @@ u8 func0007_alerted[] = {
goto_next(0x93)
label(0x13)
say_quip(CHR_BOND, 0x07, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Wipe the target!","Let's split up!","Surround her!"
say_quip(CHR_BOND, QUIP_FLANK, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(LABEL_FLANK_LEFT)
label(0x15)
say_quip(CHR_BOND, 0x07, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Wipe the target!","Let's split up!","Surround her!"
say_quip(CHR_BOND, QUIP_FLANK, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(LABEL_FLANK_RIGHT)
// Attempt trap (hide and ambush when player gets near)
@ -1227,7 +1227,7 @@ u8 func0007_alerted[] = {
dprint 'A','M','B','U','S','H',' ','P','L','A','Y','E','R','\n',0,
set_accuracy(30)
set_self_flag_bankx(CHRFLAG0_02000000, BANK_0)
say_quip(CHR_BOND, 0x01, 0x50, 0x02, 0x01, BANK_0, 0x00, 0x00) // "Open fire!","Wipe her out!","Waste her!"
say_quip(CHR_BOND, QUIP_ATTACK2, 0x50, 0x02, 0x01, BANK_0, 0x00, 0x00)
goto_first(0x1b)
label(0xa3)
@ -1489,7 +1489,7 @@ u8 func0007_alerted[] = {
if_self_flag_bankx_eq(CHRFLAG0_CAN_FLANK, FALSE, BANK_0, /*goto*/ 0x16)
set_team_orders(MA_SHOOTING, /*goto*/ 0x16)
label(0x16)
say_quip(CHR_BOND, 0x02, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GOTOCOVER1, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00)
restart_timer
go_to_cover(SPEED_RUN)
@ -1672,7 +1672,7 @@ u8 func0007_alerted[] = {
endloop(0x60)
label(0x57)
say_quip(CHR_BOND, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GUNJAMMED, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00)
do_preset_animation(-2)
goto_next(0xe8)
@ -1863,7 +1863,7 @@ u8 func0007_alerted[] = {
set_team_orders(MA_GRENADE, /*goto*/ 0x47)
beginloop(0x47)
say_quip(CHR_BOND, 0x05, 0xff, 0x07, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GRENADE2, 0xff, 0x07, 0x00, BANK_0, 0x00, 0x00)
if_chr_stopped(/*goto*/ 0x4a)
endloop(0x47)
@ -2022,7 +2022,7 @@ u8 func0007_alerted[] = {
endloop(0x43)
label(0x57)
say_quip(CHR_BOND, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GUNJAMMED, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00)
do_preset_animation(-2)
goto_next(0xe9)
@ -2032,13 +2032,13 @@ u8 func0007_alerted[] = {
set_accuracy(0)
label(0x13)
if_chr_injured_target(CHR_SELF, /*goto*/ 0x13)
say_quip(CHR_BOND, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER1, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER2, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(0x16)
label(0x13)
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
label(0x16)
call_rng
if_rand_lt(20, /*goto*/ 0x16)
@ -2359,8 +2359,8 @@ u8 func0007_alerted[] = {
goto_next(0x67)
label(0x44)
say_quip(CHR_BOND, 0x00, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x01, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
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)
beginloop(0x45)
if_dangerous_object_nearby(3, /*goto*/ LABEL_FLEE_GRENADE)
@ -2368,7 +2368,7 @@ u8 func0007_alerted[] = {
endloop(0x45)
label(0x57)
say_quip(CHR_BOND, 0x27, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GUNJAMMED, 0xfe, 0x03, 0xff, BANK_0, 0x00, 0x00)
do_preset_animation(-2)
goto_next(0xea)
label(0x2a)
@ -2377,13 +2377,13 @@ u8 func0007_alerted[] = {
set_accuracy(0)
label(0x13)
if_chr_injured_target(CHR_SELF, /*goto*/ 0x13)
say_quip(CHR_BOND, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER1, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER2, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(0x16)
label(0x13)
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
label(0x16)
call_rng
if_rand_lt(20, /*goto*/ 0x16)
@ -2459,7 +2459,7 @@ u8 func0007_alerted[] = {
set_action(MA_RETREAT, FALSE)
unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1)
unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1)
say_quip(CHR_BOND, 0x04, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00) // "Go to plan B","Get the hell out of here!","Retreat!"
say_quip(CHR_BOND, QUIP_RETREAT1, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
try_set_chrpreset_to_unalerted_teammate(0, /*goto*/ 0x95)
if_self_flag_bankx_eq(CHRFLAG1_00000002, TRUE, BANK_1, /*goto*/ 0x16)
label(0x16)
@ -2505,7 +2505,7 @@ u8 func0007_alerted[] = {
set_action(MA_SURRENDER, FALSE)
unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1)
unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1)
say_quip(CHR_BOND, 0x08, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00) // "Please! Don't shoot me!","I give up!","You win! I surrender"
say_quip(CHR_BOND, QUIP_SURRENDER, 0xfe, 0x0a, 0xff, BANK_0, 0x00, 0x00)
restart_timer
surrender
@ -2528,7 +2528,7 @@ u8 func0007_alerted[] = {
goto_first(0x71)
label(0x72)
say_quip(CHR_BOND, 0x08, 0x23, 0x0a, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SURRENDER, 0x23, 0x0a, 0x00, BANK_0, 0x00, 0x00)
restart_timer
goto_first(0x71)
@ -2547,7 +2547,7 @@ u8 func0007_alerted[] = {
label(0x97)
dprint 'W','A','R','N',' ','F','R','I','E','N','D','S','\n',0,
say_quip(CHR_BOND, 0x10, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_WARNFRIENDS, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
increase_squadron_alertness(100)
label(0x84)
goto_first(0x1b)
@ -2562,7 +2562,7 @@ u8 func0007_alerted[] = {
set_action(MA_GOTOALARM, FALSE)
unset_self_flag_bankx(CHRFLAG1_00040000, BANK_1)
unset_self_flag_bankx(CHRFLAG1_00020000, BANK_1)
say_quip(CHR_BOND, 0x22, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Trigger the alarm"
say_quip(CHR_BOND, QUIP_GOFORALARM, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
go_to_target_pad(SPEED_JOG)
beginloop(0x9d)
@ -2747,14 +2747,14 @@ u8 func000b_choose_target_chr[] = {
if_num_times_shot_lt(1, /*goto*/ 0xd3)
// Has been shot
say_quip(CHR_BOND, 0x0c, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0x78, 0x03, 0x00, BANK_0, 0x00, 0x00)
beginloop(0x03)
if_chr_stopped(/*goto*/ 0x16)
endloop(0x03)
label(0x16)
say_quip(CHR_BOND, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00)
dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0,
increase_squadron_alertness(100)
dprint 'N','O',' ','W','A','R','N','I','N','G','\n',0,
@ -2907,11 +2907,11 @@ u8 func000c_combat_with_target_chr[] = {
label(0x16)
if_chr_is_skedar(CHR_SELF, /*goto*/ 0x16)
say_quip(CHR_BOND, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_DIE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
goto_next(0x17)
label(0x16)
say_quip(CHR_BOND, 0x02, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GOTOCOVER1, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x17)
set_shotlist(GAILIST_IDLE)
@ -2936,8 +2936,8 @@ u8 func000c_combat_with_target_chr[] = {
if_self_flag_bankx_eq(CHRFLAG0_SAID_INJURY_QUIP, TRUE, BANK_0, /*goto*/ 0x16)
if_num_times_shot_lt(1, /*goto*/ 0x16)
if_timer_lt(20, /*goto*/ 0x16)
say_quip(CHR_BOND, 0x0d, 0x28, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x0e, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED1, 0x28, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_INJURED2, 0x28, 0x03, 0x01, BANK_0, 0x00, 0x00)
set_self_flag_bankx(CHRFLAG0_SAID_INJURY_QUIP, BANK_0)
label(0x16)
if_chr_stopped(/*goto*/ 0x13)
@ -3195,7 +3195,7 @@ u8 func000c_combat_with_target_chr[] = {
goto_next(0x16)
label(0x17)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x16)
call_rng
if_rand_gt(50, /*goto*/ 0x13)
@ -3215,8 +3215,8 @@ u8 func000c_combat_with_target_chr[] = {
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0xc3)
label(0xc3)
say_quip(CHR_BOND, 0x24, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x25, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK3, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK4, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
beginloop(0xe2)
if_chr_dying(CHR_TARGET, /*goto*/ 0xc1)
@ -3245,14 +3245,14 @@ u8 func000c_combat_with_target_chr[] = {
label(0xc1)
if_chr_injured_target(CHR_SELF, /*goto*/ 0x13)
dprint 'P','U','N','C','H','M','I','S','S','E','D','\n',0,
say_quip(CHR_BOND, 0x16, 0x19, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER1, 0x19, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER2, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(0x16)
label(0x13)
dprint 'P','U','N','C','H','H','I','T','\n',0,
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
label(0x16)
dprint 'B','O','N','N','D',' ','3','\n',0,
@ -3289,7 +3289,7 @@ u8 func000c_combat_with_target_chr[] = {
label(0x53)
dprint 'G','O',' ','T','O',' ','C','O','V','E','R','\n',0,
say_quip(CHR_BOND, 0x02, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_GOTOCOVER1, 0xff, 0x02, 0x01, BANK_0, 0x00, 0x00)
go_to_cover(SPEED_RUN)
restart_timer
@ -3344,14 +3344,14 @@ u8 func000c_combat_with_target_chr[] = {
goto_next(0x17)
label(0x16)
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x17)
try_aim_and_shoot_thing2(0x0200, 0x0000, /*goto*/ 0xcb)
goto_next(0x16)
label(0xcb)
say_quip(CHR_BOND, 0x24, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, 0x25, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK3, 0x19, 0x02, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_ATTACK4, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00)
beginloop(0xcc)
if_chr_dying(CHR_TARGET, /*goto*/ 0xc5)
@ -3456,7 +3456,7 @@ u8 func000c_combat_with_target_chr[] = {
goto_first(0xb3)
label(0xd7)
say_quip(CHR_BOND, 0x0f, 0x28, 0x00, 0x01, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_KILLEDPLAYER1, 0x28, 0x00, 0x01, BANK_0, 0x00, 0x00)
try_face_entity(0x0200, 0x0000, /*goto*/ 0x16)
label(0x16)
if_chr_is_skedar(CHR_SELF, /*goto*/ 0xd9)
@ -3912,7 +3912,7 @@ u8 func000f_hand_combat[] = {
label(0x17)
restart_timer
say_quip(CHR_BOND, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Open fire!","Wipe her out!","Waste her!"
say_quip(CHR_BOND, QUIP_ATTACK2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
beginloop(0x05)
if_timer_gt(180, /*goto*/ 0x16)
@ -3922,14 +3922,14 @@ u8 func000f_hand_combat[] = {
label(0x16)
if_chr_injured_target(CHR_SELF, /*goto*/ 0x13)
dprint 'P','U','N','C','H','M','I','S','S','E','D','\n',0,
say_quip(CHR_BOND, 0x16, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00) // Say random quip: "Damn, missed!","How did I miss?"
say_quip(CHR_BOND, 0x17, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) // "God sakes, someone hit her","She's a tricky one"
say_quip(CHR_BOND, QUIP_MISSEDPLAYER1, 0x19, 0x03, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_MISSEDPLAYER2, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
goto_next(0x16)
label(0x13)
dprint 'P','U','N','C','H','H','I','T','\n',0,
say_quip(CHR_BOND, 0x15, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00) // Say random quip: "Give it up!","Surrender, now!","Take that!"
say_quip(CHR_BOND, 0x15, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!"
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x19, 0x03, 0x01, BANK_0, 0x00, 0x00)
label(0x16)
goto_next(0x0b)
@ -4003,7 +4003,7 @@ u8 func0010_civilian_say_comment[] = {
restart_timer
if_chr_has_hiddenflag(CHR_SELF, CHRHFLAG_01000000, /*goto*/ 0x13)
do_preset_animation(-1)
say_quip(CHR_BOND, 0x1d, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) // "How's things?","Hey there","Hi, how are you?"
say_quip(CHR_BOND, QUIP_GREETING, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
yield
// Set a do-once flag, so chr is only stopped the first time
@ -4020,7 +4020,7 @@ u8 func0010_civilian_say_comment[] = {
label(0x05)
if_chr_has_hiddenflag(CHR_TARGET, CHRHFLAG_01000000, /*goto*/ 0x06)
set_chr_hiddenflag(CHR_TARGET, CHRHFLAG_01000000)
say_quip(CHR_BOND, 0x1e, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00) // "Where did you get that?","Should you have that?","What are you doing with that weapon?"
say_quip(CHR_BOND, QUIP_ASKWEAPON1, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00)
do_preset_animation(6)
restart_timer
@ -4041,7 +4041,7 @@ u8 func0010_civilian_say_comment[] = {
label(0x13)
set_chr_hiddenflag(CHR_TARGET, CHRHFLAG_02000000)
dprint 'D','O','N','T',' ','P','O','I','N','T','\n',0,
say_quip(CHR_BOND, 0x1f, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Don't point that at me","Watch where you're pointing that"
say_quip(CHR_BOND, QUIP_ASKWEAPON2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
do_preset_animation(-1)
restart_timer
@ -4098,7 +4098,7 @@ u8 func0010_civilian_say_comment[] = {
u8 func001c_surprised[] = {
set_shotlist(GAILIST_ALERTED)
increase_squadron_alertness(100)
say_quip(CHR_BOND, 0x0c, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00) // "Holy shh...","What the hell?!"
say_quip(CHR_BOND, QUIP_SHOTUNALERT, 0xff, 0x03, 0x00, BANK_0, 0x00, 0x00)
restart_timer
chr_do_animation(ANIM_SURPRISED_0202, 0, -1, 0x00, 0x10, CHR_SELF, 2)
@ -4118,7 +4118,7 @@ u8 func0011_flee_from_grenade[] = {
set_action(MA_RUNFROMGRENADE, FALSE)
dprint 'N','E','A','R',' ','D','A','N','G','E','R','\n',0,
run_from_grenade
say_quip(CHR_BOND, 0x03, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) // "Look out, look out!","It's a grenade!","Clear the area!"
say_quip(CHR_BOND, QUIP_GRENADE1, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
restart_timer
beginloop(0x0c)
@ -4189,7 +4189,7 @@ u8 func001b_observe_camspy[] = {
// Timer expired
label(0x04)
do_preset_animation(-1)
say_quip(CHR_BOND, 0x1c, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00) // "What the hell?","Hello there","What's this?"
say_quip(CHR_BOND, QUIP_SEEEYESPY, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00)
// Wait another 5 seconds with same logic as previous timer
beginloop(0x05)
@ -4216,7 +4216,7 @@ u8 func001b_observe_camspy[] = {
// Timer expired second time
label(0xe8)
say_quip(CHR_BOND, 0x28, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "It's a spy!"
say_quip(CHR_BOND, QUIP_UNCOVEREDDISGUISE2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
// Shoot camspy
label(0x09)
@ -4427,11 +4427,11 @@ u8 func001d_search_for_player[] = {
set_alertness(100)
dprint 'S','E','E',' ','P','L','A','Y','\n',0,
if_self_flag_bankx_eq(CHRFLAG1_00000400, FALSE, BANK_1, /*goto*/ 0x13)
say_quip(CHR_BOND, 0x1b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEARCHSUCCESS, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x13)
set_ailist(CHR_SELF, GAILIST_ALERTED)
label(0x0b)
say_quip(CHR_BOND, 0x23, 0x32, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEARCHFAIL, 0x32, 0x03, 0xff, BANK_0, 0x00, 0x00)
goto_first(0x05)
label(0xc3)
@ -4507,7 +4507,7 @@ u8 func001f_related_to_spawning[] = {
label(0x1e)
dprint 'S','E','E',' ','D','E','T','E','C','T','\n',0,
say_quip(CHR_BOND, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x9f)
increase_squadron_alertness(100)
set_alertness(255)
@ -4516,7 +4516,7 @@ u8 func001f_related_to_spawning[] = {
label(0x1f)
yield
say_quip(CHR_BOND, 0x09, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HEARNOISE, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
if_self_flag_bankx_eq(CHRFLAG0_CAN_HEARSPAWN, TRUE, BANK_0, /*goto*/ 0xda)
increase_squadron_alertness(100)
set_returnlist(CHR_SELF, GAILIST_RELATED_TO_SPAWNING)
@ -4721,7 +4721,7 @@ u8 func0014_coop_buddy[] = {
// Injured
label(0x13)
say_quip(CHR_BOND, 0x0e, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!"
say_quip(CHR_BOND, QUIP_INJURED2, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00)
dprint 'B','U','D','D','Y',' ','W','O','U','N','D','\n',0,
beginloop(0xf2)
@ -4842,15 +4842,15 @@ u8 func0014_coop_buddy[] = {
call_rng
if_rand_lt(85, /*goto*/ 0xfa)
if_rand_lt(170, /*goto*/ 0xf3)
say_quip(CHR_BOND, 0x00, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "I've got a clear shot","She's mine!"
say_quip(CHR_BOND, QUIP_ATTACK1, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00)
goto_next(0x13)
label(0xfa)
say_quip(CHR_BOND, 0x0b, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "Hey, you!","Intruder alert","We've got a contact!"
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00)
goto_next(0x13)
label(0xf3)
say_quip(CHR_BOND, 0x15, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!"
say_quip(CHR_BOND, QUIP_HITPLAYER, 0xff, 0x14, 0xff, BANK_0, 0x00, 0x00)
label(0x13)
// Found chr in group from non G5 or Deep Sea stage
@ -4915,8 +4915,8 @@ u8 func0022_comment_on_player_dead[] = {
label(0x16)
dprint 'K','I','L','L','E','D','E','R','\n',0,
say_quip(CHR_BOND, 0x26, 0xff, 0x02, 0x00, BANK_0, 0x00, 0x00) // "Grab a body bag","One for the morgue","Rest in peace"
say_quip(CHR_BOND, 0x15, 0x80, 0x03, 0x01, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!"
say_quip(CHR_BOND, QUIP_KILLEDPLAYER2, 0xff, 0x02, 0x00, BANK_0, 0x00, 0x00)
say_quip(CHR_BOND, QUIP_HITPLAYER, 0x80, 0x03, 0x01, BANK_0, 0x00, 0x00)
beginloop(0x04)
endloop(0x04)
@ -5188,7 +5188,7 @@ u8 func0027_psychosised[] = {
// Injured
label(0x13)
say_quip(CHR_BOND, 0x0e, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "I'm hit, I'm hit!","I'm taking fire!","Taking damage!"
say_quip(CHR_BOND, QUIP_INJURED2, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
beginloop(0xf2)
if_chr_stopped(/*goto*/ 0x16)
@ -5253,15 +5253,15 @@ u8 func0027_psychosised[] = {
if_rand_lt(85, /*goto*/ 0xfa)
if_rand_lt(170, /*goto*/ 0xf3)
say_quip(CHR_BOND, 0x00, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "I've got a clear shot","She's mine!"
say_quip(CHR_BOND, QUIP_ATTACK1, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
goto_next(0x13)
label(0xfa)
say_quip(CHR_BOND, 0x0b, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Hey, you!","Intruder alert","We've got a contact!"
say_quip(CHR_BOND, QUIP_SEEPLAYER, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
goto_next(0x13)
label(0xf3)
say_quip(CHR_BOND, 0x15, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00) // "Give it up!","Surrender, now!","Take that!"
say_quip(CHR_BOND, QUIP_HITPLAYER, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00)
label(0x13)
set_returnlist(CHR_SELF, GAILIST_PSYCHOSISED)

View File

@ -3896,451 +3896,451 @@ u32 var8005dde0 = 0x00000000;
// 3e04
struct audiodefinition audiodefinitions[] = {
{ 0x85ba, 59 },
{ 0x85a5, 15 },
{ 0x85a6, 15 },
{ 0x80bb, 14 },
{ 0x80bc, 14 },
{ 0x8007, 14 },
{ 0x8007, 14 },
{ 0x80be, 14 },
{ 0x80bf, 14 },
{ 0x80bf, 14 },
{ 0x80c0, 14 },
{ 0x8007, 14 },
{ 0x80c2, 14 },
{ 0x80c3, 14 },
{ 0x80c4, 14 },
{ 0x80c5, 14 },
{ 0x8007, 14 },
{ 0x80c7, 14 },
{ 0x80c8, 14 },
{ 0x80c9, 14 },
{ 0x80ca, 15 },
{ 0x80cb, 15 },
{ 0x80cc, 15 },
{ 0x8007, 15 },
{ 0x8007, 15 },
{ 0x8007, 15 },
{ 0x80d2, 15 },
{ 0x80d3, 15 },
{ 0x8007, 15 },
{ 0x80c6, 14 },
{ 0x80d6, 15 },
{ 0x80d7, 15 },
{ 0x80d8, 15 },
{ 0x80db, 14 },
{ 0x80da, 14 },
{ 0x80bf, 14 },
{ 0x80bf, 14 },
{ 0x80de, 14 },
{ 0x80e1, 15 },
{ 0x80e2, 15 },
{ 0x977a, 60 },
{ 0x97b0, 60 },
{ 0x97b1, 60 },
{ 0x977c, 60 },
{ 0x9786, 60 },
{ 0x9787, 60 },
{ 0x9788, 60 },
{ 0x978c, 60 },
{ 0x9794, 60 },
{ 0x9784, 60 },
{ 0x978e, 60 },
{ 0x978f, 60 },
{ 0x9790, 60 },
{ 0x977e, 60 },
{ 0x977f, 60 },
{ 0x9780, 60 },
{ 0x802e, 32 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x806a, 33 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x806d, 33 },
{ 0x806e, 33 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x8070, 33 },
{ 0x8071, 33 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x8075, 33 },
{ 0x8037, 35 },
{ 0x8037, 35 },
{ 0x8079, 31 },
{ 0x8066, 31 },
{ 0x8037, 35 },
{ 0x8032, 31 },
{ 0x8037, 35 },
{ 0x807a, 35 },
{ 0x8059, 31 },
{ 0x8001, 35 },
{ 0x847e, 32 },
{ 0x847d, 33 },
{ 0x84f1, 32 },
{ 0x84f2, 32 },
{ 0x84f3, 32 },
{ 0x84f4, 33 },
{ 0x84f6, 33 },
{ 0x8506, 31 },
{ 0x84fd, 33 },
{ 0x8504, 33 },
{ 0x84fe, 33 },
{ 0x8503, 33 },
{ 0x8500, 32 },
{ 0x8501, 32 },
{ 0x8502, 32 },
{ 0x85ca, 31 },
{ 0x85cb, 31 },
{ 0x85d2, 31 },
{ 0x8074, 33 },
{ 0x85eb, 35 },
{ 0x85ec, 35 },
{ 0x85ed, 31 },
{ 0x85ee, 31 },
{ 0x85ef, 33 },
{ 0x85f0, 33 },
{ 0x85f1, 33 },
{ 0x85f2, 33 },
{ 0x85f3, 33 },
{ 0x85f4, 33 },
{ 0x8508, 31 },
{ 0x850a, 31 },
{ 0x8076, 33 },
{ 0x85f5, 30 },
{ 0x8509, 33 },
{ 0x8045, 45 },
{ 0x8046, 45 },
{ 0x8047, 25 },
{ 0x8048, 45 },
{ 0x80f0, 45 },
{ 0x80ef, 45 },
{ 0x8049, 45 },
{ 0x804a, 45 },
{ 0x804b, 45 },
{ 0x80d9, 45 },
{ 0x804c, 45 },
{ 0x80e7, 45 },
{ 0x80e6, 45 },
{ 0x80e0, 45 },
{ 0x80dc, 45 },
{ 0x80b9, 45 },
{ 0x80d4, 45 },
{ 0x80d0, 45 },
{ 0x80d1, 45 },
{ 0x8078, 45 },
{ 0x80dd, 45 },
{ 0x8003, 45 },
{ 0x802d, 21 },
{ 0x807b, 21 },
{ 0x807c, 21 },
{ 0x807d, 21 },
{ 0x807e, 21 },
{ 0x807f, 21 },
{ 0x8080, 21 },
{ 0x8081, 21 },
{ 0x8082, 21 },
{ 0x8083, 21 },
{ 0x8084, 21 },
{ 0x8085, 21 },
{ 0x80b4, 18 },
{ 0x80b5, 18 },
{ 0x80b6, 17 },
{ 0x80a9, 18 },
{ 0x80aa, 18 },
{ 0x80ab, 17 },
{ 0x80ac, 18 },
{ 0x80ad, 18 },
{ 0x80ae, 17 },
{ 0x80b1, 18 },
{ 0x80b2, 18 },
{ 0x80b3, 18 },
{ 0x818a, 19 },
{ 0xefdd, 19 },
{ 0x805f, 32 },
{ 0x8060, 32 },
{ 0x8061, 32 },
{ 0x8004, 32 },
{ 0x80f1, 32 },
{ 0x80f3, 32 },
{ 0x8055, 16 },
{ 0x8056, 16 },
{ 0x8057, 16 },
{ 0x85f7, 52 },
{ 0x8127, 29 },
{ 0x8128, 29 },
{ 0x8129, 29 },
{ 0x812a, 29 },
{ 0x812b, 29 },
{ 0x812c, 29 },
{ 0x812d, 50 },
{ 0x812e, 50 },
{ 0x8138, 50 },
{ 0x8138, 28 },
{ 0x812f, 51 },
{ 0x8151, 51 },
{ 0x8154, 51 },
{ 0x8157, 51 },
{ 0x815a, 51 },
{ 0x8132, 51 },
{ 0x8139, 51 },
{ 0x813f, 51 },
{ 0x8145, 51 },
{ 0x814b, 51 },
{ 0x8161, 4 },
{ 0x8162, 4 },
{ 0x8163, 4 },
{ 0x8164, 4 },
{ 0x8165, 4 },
{ 0x8166, 4 },
{ 0x8167, 4 },
{ 0x8168, 4 },
{ 0x8169, 4 },
{ 0x816a, 4 },
{ 0x816b, 4 },
{ 0x816c, 4 },
{ 0x816d, 4 },
{ 0x816e, 4 },
{ 0x816f, 4 },
{ 0x8170, 4 },
{ 0x8171, 4 },
{ 0x8172, 4 },
{ 0x8173, 4 },
{ 0x8174, 4 },
{ 0x8175, 4 },
{ 0x8176, 4 },
{ 0x8177, 4 },
{ 0x8178, 4 },
{ 0x8179, 4 },
{ 0x817a, 4 },
{ 0x817b, 4 },
{ 0x817c, 4 },
{ 0x817d, 4 },
{ 0x817e, 4 },
{ 0x817f, 4 },
{ 0x8180, 4 },
{ 0x804d, 4 },
{ 0x804e, 4 },
{ 0x85f8, 5 },
{ 0x85f9, 5 },
{ 0x85fa, 5 },
{ 0x85fb, 5 },
{ 0x85fc, 6 },
{ 0x85fd, 6 },
{ 0x85fe, 6 },
{ 0x85ff, 6 },
{ 0x8600, 4 },
{ 0x8601, 4 },
{ 0x8602, 4 },
{ 0x8603, 4 },
{ 0x8604, 4 },
{ 0x8605, 4 },
{ 0x8606, 4 },
{ 0x8606, 4 },
{ 0x81d9, 61 },
{ 0x8267, 2 },
{ 0x8268, 2 },
{ 0x8286, 2 },
{ 0x8288, 2 },
{ 0x8291, 2 },
{ 0x829f, 2 },
{ 0x82a1, 2 },
{ 0x8af9, 47 },
{ 0x8afa, 47 },
{ 0x8afb, 47 },
{ 0x92fc, 47 },
{ 0x92fd, 47 },
{ 0x9285, 2 },
{ 0x9306, 48 },
{ 0x9307, 48 },
{ 0x9308, 48 },
{ 0x9309, 48 },
{ 0x930a, 48 },
{ 0x8435, 49 },
{ 0x81b5, 7 },
{ 0x81b6, 8 },
{ 0x81b5, 9 },
{ 0x81b6, 10 },
{ 0x85f3, 11 },
{ 0x81b5, 12 },
{ 0x81b6, 13 },
{ 0x81b7, 20 },
{ 0x81b8, 20 },
{ 0x81c7, 20 },
{ 0x8037, 20 },
{ 0x81b7, 56 },
{ 0x81b9, 0 },
{ 0x81ba, 0 },
{ 0x81bb, 0 },
{ 0x81cb, 36 },
{ 0x81cb, 37 },
{ 0x81cb, 38 },
{ 0x81c6, 55 },
{ 0x9278, 47 },
{ 0x9279, 47 },
{ 0x927a, 47 },
{ 0x927b, 47 },
{ 0x927c, 47 },
{ 0x927d, 47 },
{ 0x9277, 47 },
{ 0x82fd, 2 },
{ 0x82fe, 2 },
{ 0x8300, 2 },
{ 0x8303, 2 },
{ 0x830a, 2 },
{ 0x8313, 62 },
{ 0x8314, 2 },
{ 0x832e, 2 },
{ 0x8330, 2 },
{ 0x8333, 2 },
{ 0x8334, 2 },
{ 0x834c, 62 },
{ 0x83a3, 2 },
{ 0x83b9, 2 },
{ 0x83c7, 2 },
{ 0x83cf, 2 },
{ 0x83d2, 2 },
{ 0x83d4, 2 },
{ 0x83f3, 2 },
{ 0x83f5, 2 },
{ 0x83f6, 2 },
{ 0x8400, 2 },
{ 0x8411, 62 },
{ 0x8413, 2 },
{ 0x8414, 2 },
{ 0x8422, 2 },
{ 0x8432, 33 },
{ 0x843c, 58 },
{ 0x843d, 58 },
{ 0x84ab, 58 },
{ 0x843d, 58 },
{ 0x81b7, 58 },
{ 0x8477, 57 },
{ 0x8478, 57 },
{ 0x81c2, 54 },
{ 0x8479, 54 },
{ 0x81c3, 54 },
{ 0x81c4, 54 },
{ 0x8443, 2 },
{ 0x844e, 2 },
{ 0x843c, 63 },
{ 0x847c, 63 },
{ 0x843d, 63 },
{ 0xf2ad, 1 },
{ 0xf2ae, 1 },
{ 0xf2af, 1 },
{ 0xd2b0, 1 },
{ 0xf2b1, 1 },
{ 0xd2b2, 1 },
{ 0x92b8, 2 },
{ 0x9b30, 2 },
{ 0x9b27, 47 },
{ 0x9b28, 47 },
{ 0x9b29, 47 },
{ 0x9b2a, 47 },
{ 0x9b2b, 47 },
{ 0x9b2c, 47 },
{ 0x9a9d, 60 },
{ 0x9a9e, 60 },
{ 0x9a9f, 60 },
{ 0x8037, 4 },
{ 0x9271, 60 },
{ 0x9275, 2 },
{ 0x9acc, 60 },
{ 0x9acd, 60 },
{ 0x9ad4, 60 },
{ 0x9ad5, 60 },
{ 0x84c8, 2 },
{ 0x84cd, 2 },
{ 0x84ad, 46 },
{ 0x8507, 27 },
{ 0x84ee, 16 },
{ 0x84ef, 16 },
{ 0x84f0, 16 },
{ 0x92c8, 2 },
{ 0x92c9, 2 },
{ 0xb3a0, 1 },
{ 0xb3a1, 1 },
{ 0xd3a3, 1 },
{ 0xd3a4, 1 },
{ 0xd3a6, 1 },
{ 0xd3a7, 1 },
{ 0xd3a8, 1 },
{ 0xd3a9, 1 },
{ 0xd3ab, 1 },
{ 0xd3b0, 1 },
{ 0xd3b2, 1 },
{ 0xd3b3, 1 },
{ 0xb3b6, 1 },
{ 0xd3b8, 1 },
{ 0xd3ba, 1 },
{ 0xd3bb, 1 },
{ 0xb3bd, 1 },
{ 0xd3bf, 1 },
{ 0xb3c4, 1 },
{ 0xb3c5, 1 },
{ 0xb3c6, 1 },
{ 0xb3c9, 1 },
{ 0xb3ca, 1 },
{ 0x8594, 4 },
{ 0x8595, 4 },
{ 0x8596, 4 },
{ 0x8597, 4 },
{ 0x8598, 4 },
{ 0x8599, 4 },
{ 0x859a, 4 },
{ 0x859b, 4 },
{ 0x85a0, 4 },
{ 0x85a1, 4 },
{ 0x85a2, 4 },
{ 0x85a3, 4 },
{ 0xf310, 1 },
{ 0xd311, 1 },
{ 0xf312, 1 },
{ 0xd313, 1 },
{ 0xf314, 1 },
{ 0xd315, 1 },
{ 0xf316, 3 },
{ 0xd317, 1 },
{ 0xf318, 1 },
{ 0xd319, 1 },
{ 0xf31a, 1 },
{ 0xd31b, 1 },
{ 0xf293, 1 },
{ 0xf2df, 1 },
{ 0xf2e0, 1 },
{ 0xd4ea, 1 },
{ 0x8d24, 2 },
{ 0x9d62, 47 },
{ 0x84aa, 43 },
{ 0x81cf, 41 },
{ 0x858f, 40 },
{ 0x80d5, 39 },
{ 0x80ec, 39 },
{ 0x80ed, 40 },
{ 0x80d5, 41 },
{ 0x80ec, 41 },
{ 0x80ed, 42 },
{ 0x80d5, 41 },
{ 0x80ec, 41 },
{ 0x803a, 41 },
{ 0x84e8, 43 },
{ 0x84e9, 43 },
{ 0x80cd, 42 },
{ 0x80ce, 42 },
{ 0x8039, 42 },
{ 0x80cd, 44 },
{ 0x80db, 16 },
{ 0x80da, 16 },
{ 0xf41c, 2 },
{ 0xf434, 2 },
{ 0xf44f, 2 },
{ 0x0000, 0 },
/*0x0000*/ { 0x85ba, 59 },
/*0x0001*/ { 0x85a5, 15 },
/*0x0002*/ { 0x85a6, 15 },
/*0x0003*/ { 0x80bb, 14 },
/*0x0004*/ { 0x80bc, 14 },
/*0x0005*/ { 0x8007, 14 },
/*0x0006*/ { 0x8007, 14 },
/*0x0007*/ { 0x80be, 14 },
/*0x0008*/ { 0x80bf, 14 },
/*0x0009*/ { 0x80bf, 14 },
/*0x000a*/ { 0x80c0, 14 },
/*0x000b*/ { 0x8007, 14 },
/*0x000c*/ { 0x80c2, 14 },
/*0x000d*/ { 0x80c3, 14 },
/*0x000e*/ { 0x80c4, 14 },
/*0x000f*/ { 0x80c5, 14 },
/*0x0010*/ { 0x8007, 14 },
/*0x0011*/ { 0x80c7, 14 },
/*0x0012*/ { 0x80c8, 14 },
/*0x0013*/ { 0x80c9, 14 },
/*0x0014*/ { 0x80ca, 15 },
/*0x0015*/ { 0x80cb, 15 },
/*0x0016*/ { 0x80cc, 15 },
/*0x0017*/ { 0x8007, 15 },
/*0x0018*/ { 0x8007, 15 },
/*0x0019*/ { 0x8007, 15 },
/*0x001a*/ { 0x80d2, 15 },
/*0x001b*/ { 0x80d3, 15 },
/*0x001c*/ { 0x8007, 15 },
/*0x001d*/ { 0x80c6, 14 },
/*0x001e*/ { 0x80d6, 15 },
/*0x001f*/ { 0x80d7, 15 },
/*0x0020*/ { 0x80d8, 15 },
/*0x0021*/ { 0x80db, 14 },
/*0x0022*/ { 0x80da, 14 },
/*0x0023*/ { 0x80bf, 14 },
/*0x0024*/ { 0x80bf, 14 },
/*0x0025*/ { 0x80de, 14 },
/*0x0026*/ { 0x80e1, 15 },
/*0x0027*/ { 0x80e2, 15 },
/*0x0028*/ { 0x977a, 60 },
/*0x0029*/ { 0x97b0, 60 },
/*0x002a*/ { 0x97b1, 60 },
/*0x002b*/ { 0x977c, 60 },
/*0x002c*/ { 0x9786, 60 },
/*0x002d*/ { 0x9787, 60 },
/*0x002e*/ { 0x9788, 60 },
/*0x002f*/ { 0x978c, 60 },
/*0x0030*/ { 0x9794, 60 },
/*0x0031*/ { 0x9784, 60 },
/*0x0032*/ { 0x978e, 60 },
/*0x0033*/ { 0x978f, 60 },
/*0x0034*/ { 0x9790, 60 },
/*0x0035*/ { 0x977e, 60 },
/*0x0036*/ { 0x977f, 60 },
/*0x0037*/ { 0x9780, 60 },
/*0x0038*/ { 0x802e, 32 },
/*0x0039*/ { 0x8037, 35 },
/*0x003a*/ { 0x8037, 35 },
/*0x003b*/ { 0x806a, 33 },
/*0x003c*/ { 0x8037, 35 },
/*0x003d*/ { 0x8037, 35 },
/*0x003e*/ { 0x8037, 35 },
/*0x003f*/ { 0x806d, 33 },
/*0x0040*/ { 0x806e, 33 },
/*0x0041*/ { 0x8037, 35 },
/*0x0042*/ { 0x8037, 35 },
/*0x0043*/ { 0x8070, 33 },
/*0x0044*/ { 0x8071, 33 },
/*0x0045*/ { 0x8037, 35 },
/*0x0046*/ { 0x8037, 35 },
/*0x0047*/ { 0x8037, 35 },
/*0x0048*/ { 0x8037, 35 },
/*0x0049*/ { 0x8075, 33 },
/*0x004a*/ { 0x8037, 35 },
/*0x004b*/ { 0x8037, 35 },
/*0x004c*/ { 0x8079, 31 },
/*0x004d*/ { 0x8066, 31 },
/*0x004e*/ { 0x8037, 35 },
/*0x004f*/ { 0x8032, 31 },
/*0x0050*/ { 0x8037, 35 },
/*0x0051*/ { 0x807a, 35 },
/*0x0052*/ { 0x8059, 31 },
/*0x0053*/ { 0x8001, 35 },
/*0x0054*/ { 0x847e, 32 },
/*0x0055*/ { 0x847d, 33 },
/*0x0056*/ { 0x84f1, 32 },
/*0x0057*/ { 0x84f2, 32 },
/*0x0058*/ { 0x84f3, 32 },
/*0x0059*/ { 0x84f4, 33 },
/*0x005a*/ { 0x84f6, 33 },
/*0x005b*/ { 0x8506, 31 },
/*0x005c*/ { 0x84fd, 33 },
/*0x005d*/ { 0x8504, 33 },
/*0x005e*/ { 0x84fe, 33 },
/*0x005f*/ { 0x8503, 33 },
/*0x0060*/ { 0x8500, 32 },
/*0x0061*/ { 0x8501, 32 },
/*0x0062*/ { 0x8502, 32 },
/*0x0063*/ { 0x85ca, 31 },
/*0x0064*/ { 0x85cb, 31 },
/*0x0065*/ { 0x85d2, 31 },
/*0x0066*/ { 0x8074, 33 },
/*0x0067*/ { 0x85eb, 35 },
/*0x0068*/ { 0x85ec, 35 },
/*0x0069*/ { 0x85ed, 31 },
/*0x006a*/ { 0x85ee, 31 },
/*0x006b*/ { 0x85ef, 33 },
/*0x006c*/ { 0x85f0, 33 },
/*0x006d*/ { 0x85f1, 33 },
/*0x006e*/ { 0x85f2, 33 },
/*0x006f*/ { 0x85f3, 33 },
/*0x0070*/ { 0x85f4, 33 },
/*0x0071*/ { 0x8508, 31 },
/*0x0072*/ { 0x850a, 31 },
/*0x0073*/ { 0x8076, 33 },
/*0x0074*/ { 0x85f5, 30 },
/*0x0075*/ { 0x8509, 33 },
/*0x0076*/ { 0x8045, 45 },
/*0x0077*/ { 0x8046, 45 },
/*0x0078*/ { 0x8047, 25 },
/*0x0079*/ { 0x8048, 45 },
/*0x007a*/ { 0x80f0, 45 },
/*0x007b*/ { 0x80ef, 45 },
/*0x007c*/ { 0x8049, 45 },
/*0x007d*/ { 0x804a, 45 },
/*0x007e*/ { 0x804b, 45 },
/*0x007f*/ { 0x80d9, 45 },
/*0x0080*/ { 0x804c, 45 },
/*0x0081*/ { 0x80e7, 45 },
/*0x0082*/ { 0x80e6, 45 },
/*0x0083*/ { 0x80e0, 45 },
/*0x0084*/ { 0x80dc, 45 },
/*0x0085*/ { 0x80b9, 45 },
/*0x0086*/ { 0x80d4, 45 },
/*0x0087*/ { 0x80d0, 45 },
/*0x0088*/ { 0x80d1, 45 },
/*0x0089*/ { 0x8078, 45 },
/*0x008a*/ { 0x80dd, 45 },
/*0x008b*/ { 0x8003, 45 },
/*0x008c*/ { 0x802d, 21 },
/*0x008d*/ { 0x807b, 21 },
/*0x008e*/ { 0x807c, 21 },
/*0x008f*/ { 0x807d, 21 },
/*0x0090*/ { 0x807e, 21 },
/*0x0091*/ { 0x807f, 21 },
/*0x0092*/ { 0x8080, 21 },
/*0x0093*/ { 0x8081, 21 },
/*0x0094*/ { 0x8082, 21 },
/*0x0095*/ { 0x8083, 21 },
/*0x0096*/ { 0x8084, 21 },
/*0x0097*/ { 0x8085, 21 },
/*0x0098*/ { 0x80b4, 18 },
/*0x0099*/ { 0x80b5, 18 },
/*0x009a*/ { 0x80b6, 17 },
/*0x009b*/ { 0x80a9, 18 },
/*0x009c*/ { 0x80aa, 18 },
/*0x009d*/ { 0x80ab, 17 },
/*0x009e*/ { 0x80ac, 18 },
/*0x009f*/ { 0x80ad, 18 },
/*0x00a0*/ { 0x80ae, 17 },
/*0x00a1*/ { 0x80b1, 18 },
/*0x00a2*/ { 0x80b2, 18 },
/*0x00a3*/ { 0x80b3, 18 },
/*0x00a4*/ { 0x818a, 19 },
/*0x00a5*/ { 0xefdd, 19 },
/*0x00a6*/ { 0x805f, 32 },
/*0x00a7*/ { 0x8060, 32 },
/*0x00a8*/ { 0x8061, 32 },
/*0x00a9*/ { 0x8004, 32 },
/*0x00aa*/ { 0x80f1, 32 },
/*0x00ab*/ { 0x80f3, 32 },
/*0x00ac*/ { 0x8055, 16 },
/*0x00ad*/ { 0x8056, 16 },
/*0x00ae*/ { 0x8057, 16 },
/*0x00af*/ { 0x85f7, 52 },
/*0x00b0*/ { 0x8127, 29 },
/*0x00b1*/ { 0x8128, 29 },
/*0x00b2*/ { 0x8129, 29 },
/*0x00b3*/ { 0x812a, 29 },
/*0x00b4*/ { 0x812b, 29 },
/*0x00b5*/ { 0x812c, 29 },
/*0x00b6*/ { 0x812d, 50 },
/*0x00b7*/ { 0x812e, 50 },
/*0x00b8*/ { 0x8138, 50 },
/*0x00b9*/ { 0x8138, 28 },
/*0x00ba*/ { 0x812f, 51 },
/*0x00bb*/ { 0x8151, 51 },
/*0x00bc*/ { 0x8154, 51 },
/*0x00bd*/ { 0x8157, 51 },
/*0x00be*/ { 0x815a, 51 },
/*0x00bf*/ { 0x8132, 51 },
/*0x00c0*/ { 0x8139, 51 },
/*0x00c1*/ { 0x813f, 51 },
/*0x00c2*/ { 0x8145, 51 },
/*0x00c3*/ { 0x814b, 51 },
/*0x00c4*/ { 0x8161, 4 },
/*0x00c5*/ { 0x8162, 4 },
/*0x00c6*/ { 0x8163, 4 },
/*0x00c7*/ { 0x8164, 4 },
/*0x00c8*/ { 0x8165, 4 },
/*0x00c9*/ { 0x8166, 4 },
/*0x00ca*/ { 0x8167, 4 },
/*0x00cb*/ { 0x8168, 4 },
/*0x00cc*/ { 0x8169, 4 },
/*0x00cd*/ { 0x816a, 4 },
/*0x00ce*/ { 0x816b, 4 },
/*0x00cf*/ { 0x816c, 4 },
/*0x00d0*/ { 0x816d, 4 },
/*0x00d1*/ { 0x816e, 4 },
/*0x00d2*/ { 0x816f, 4 },
/*0x00d3*/ { 0x8170, 4 },
/*0x00d4*/ { 0x8171, 4 },
/*0x00d5*/ { 0x8172, 4 },
/*0x00d6*/ { 0x8173, 4 },
/*0x00d7*/ { 0x8174, 4 },
/*0x00d8*/ { 0x8175, 4 },
/*0x00d9*/ { 0x8176, 4 },
/*0x00da*/ { 0x8177, 4 },
/*0x00db*/ { 0x8178, 4 },
/*0x00dc*/ { 0x8179, 4 },
/*0x00dd*/ { 0x817a, 4 },
/*0x00de*/ { 0x817b, 4 },
/*0x00df*/ { 0x817c, 4 },
/*0x00e0*/ { 0x817d, 4 },
/*0x00e1*/ { 0x817e, 4 },
/*0x00e2*/ { 0x817f, 4 },
/*0x00e3*/ { 0x8180, 4 },
/*0x00e4*/ { 0x804d, 4 },
/*0x00e5*/ { 0x804e, 4 },
/*0x00e6*/ { 0x85f8, 5 },
/*0x00e7*/ { 0x85f9, 5 },
/*0x00e8*/ { 0x85fa, 5 },
/*0x00e9*/ { 0x85fb, 5 },
/*0x00ea*/ { 0x85fc, 6 },
/*0x00eb*/ { 0x85fd, 6 },
/*0x00ec*/ { 0x85fe, 6 },
/*0x00ed*/ { 0x85ff, 6 },
/*0x00ee*/ { 0x8600, 4 },
/*0x00ef*/ { 0x8601, 4 },
/*0x00f0*/ { 0x8602, 4 },
/*0x00f1*/ { 0x8603, 4 },
/*0x00f2*/ { 0x8604, 4 },
/*0x00f3*/ { 0x8605, 4 },
/*0x00f4*/ { 0x8606, 4 },
/*0x00f5*/ { 0x8606, 4 },
/*0x00f6*/ { 0x81d9, 61 },
/*0x00f7*/ { 0x8267, 2 },
/*0x00f8*/ { 0x8268, 2 },
/*0x00f9*/ { 0x8286, 2 },
/*0x00fa*/ { 0x8288, 2 },
/*0x00fb*/ { 0x8291, 2 },
/*0x00fc*/ { 0x829f, 2 },
/*0x00fd*/ { 0x82a1, 2 },
/*0x00fe*/ { 0x8af9, 47 },
/*0x00ff*/ { 0x8afa, 47 },
/*0x0100*/ { 0x8afb, 47 },
/*0x0101*/ { 0x92fc, 47 },
/*0x0102*/ { 0x92fd, 47 },
/*0x0103*/ { 0x9285, 2 },
/*0x0104*/ { 0x9306, 48 },
/*0x0105*/ { 0x9307, 48 },
/*0x0106*/ { 0x9308, 48 },
/*0x0107*/ { 0x9309, 48 },
/*0x0108*/ { 0x930a, 48 },
/*0x0109*/ { 0x8435, 49 },
/*0x010a*/ { 0x81b5, 7 },
/*0x010b*/ { 0x81b6, 8 },
/*0x010c*/ { 0x81b5, 9 },
/*0x010d*/ { 0x81b6, 10 },
/*0x010e*/ { 0x85f3, 11 },
/*0x010f*/ { 0x81b5, 12 },
/*0x0110*/ { 0x81b6, 13 },
/*0x0111*/ { 0x81b7, 20 },
/*0x0112*/ { 0x81b8, 20 },
/*0x0113*/ { 0x81c7, 20 },
/*0x0114*/ { 0x8037, 20 },
/*0x0115*/ { 0x81b7, 56 },
/*0x0116*/ { 0x81b9, 0 },
/*0x0117*/ { 0x81ba, 0 },
/*0x0118*/ { 0x81bb, 0 },
/*0x0119*/ { 0x81cb, 36 },
/*0x011a*/ { 0x81cb, 37 },
/*0x011b*/ { 0x81cb, 38 },
/*0x011c*/ { 0x81c6, 55 },
/*0x011d*/ { 0x9278, 47 },
/*0x011e*/ { 0x9279, 47 },
/*0x011f*/ { 0x927a, 47 },
/*0x0120*/ { 0x927b, 47 },
/*0x0121*/ { 0x927c, 47 },
/*0x0122*/ { 0x927d, 47 },
/*0x0123*/ { 0x9277, 47 },
/*0x0124*/ { 0x82fd, 2 },
/*0x0125*/ { 0x82fe, 2 },
/*0x0126*/ { 0x8300, 2 },
/*0x0127*/ { 0x8303, 2 },
/*0x0128*/ { 0x830a, 2 },
/*0x0129*/ { 0x8313, 62 },
/*0x012a*/ { 0x8314, 2 },
/*0x012b*/ { 0x832e, 2 },
/*0x012c*/ { 0x8330, 2 },
/*0x012d*/ { 0x8333, 2 },
/*0x012e*/ { 0x8334, 2 },
/*0x012f*/ { 0x834c, 62 },
/*0x0130*/ { 0x83a3, 2 },
/*0x0131*/ { 0x83b9, 2 },
/*0x0132*/ { 0x83c7, 2 },
/*0x0133*/ { 0x83cf, 2 },
/*0x0134*/ { 0x83d2, 2 },
/*0x0135*/ { 0x83d4, 2 },
/*0x0136*/ { 0x83f3, 2 },
/*0x0137*/ { 0x83f5, 2 },
/*0x0138*/ { 0x83f6, 2 },
/*0x0139*/ { 0x8400, 2 },
/*0x013a*/ { 0x8411, 62 },
/*0x013b*/ { 0x8413, 2 },
/*0x013c*/ { 0x8414, 2 },
/*0x013d*/ { 0x8422, 2 },
/*0x013e*/ { 0x8432, 33 },
/*0x013f*/ { 0x843c, 58 },
/*0x0140*/ { 0x843d, 58 },
/*0x0141*/ { 0x84ab, 58 },
/*0x0142*/ { 0x843d, 58 },
/*0x0143*/ { 0x81b7, 58 },
/*0x0144*/ { 0x8477, 57 },
/*0x0145*/ { 0x8478, 57 },
/*0x0146*/ { 0x81c2, 54 },
/*0x0147*/ { 0x8479, 54 },
/*0x0148*/ { 0x81c3, 54 },
/*0x0149*/ { 0x81c4, 54 },
/*0x014a*/ { 0x8443, 2 },
/*0x014b*/ { 0x844e, 2 },
/*0x014c*/ { 0x843c, 63 },
/*0x014d*/ { 0x847c, 63 },
/*0x014e*/ { 0x843d, 63 },
/*0x014f*/ { 0xf2ad, 1 },
/*0x0150*/ { 0xf2ae, 1 },
/*0x0151*/ { 0xf2af, 1 },
/*0x0152*/ { 0xd2b0, 1 },
/*0x0153*/ { 0xf2b1, 1 },
/*0x0154*/ { 0xd2b2, 1 },
/*0x0155*/ { 0x92b8, 2 },
/*0x0156*/ { 0x9b30, 2 },
/*0x0157*/ { 0x9b27, 47 },
/*0x0158*/ { 0x9b28, 47 },
/*0x0159*/ { 0x9b29, 47 },
/*0x015a*/ { 0x9b2a, 47 },
/*0x015b*/ { 0x9b2b, 47 },
/*0x015c*/ { 0x9b2c, 47 },
/*0x015d*/ { 0x9a9d, 60 },
/*0x015e*/ { 0x9a9e, 60 },
/*0x015f*/ { 0x9a9f, 60 },
/*0x0160*/ { 0x8037, 4 },
/*0x0161*/ { 0x9271, 60 },
/*0x0162*/ { 0x9275, 2 },
/*0x0163*/ { 0x9acc, 60 },
/*0x0164*/ { 0x9acd, 60 },
/*0x0165*/ { 0x9ad4, 60 },
/*0x0166*/ { 0x9ad5, 60 },
/*0x0167*/ { 0x84c8, 2 },
/*0x0168*/ { 0x84cd, 2 },
/*0x0169*/ { 0x84ad, 46 },
/*0x016a*/ { 0x8507, 27 },
/*0x016b*/ { 0x84ee, 16 },
/*0x016c*/ { 0x84ef, 16 },
/*0x016d*/ { 0x84f0, 16 },
/*0x016e*/ { 0x92c8, 2 },
/*0x016f*/ { 0x92c9, 2 },
/*0x0170*/ { 0xb3a0, 1 },
/*0x0171*/ { 0xb3a1, 1 },
/*0x0172*/ { 0xd3a3, 1 },
/*0x0173*/ { 0xd3a4, 1 },
/*0x0174*/ { 0xd3a6, 1 },
/*0x0175*/ { 0xd3a7, 1 },
/*0x0176*/ { 0xd3a8, 1 },
/*0x0177*/ { 0xd3a9, 1 },
/*0x0178*/ { 0xd3ab, 1 },
/*0x0179*/ { 0xd3b0, 1 },
/*0x017a*/ { 0xd3b2, 1 },
/*0x017b*/ { 0xd3b3, 1 },
/*0x017c*/ { 0xb3b6, 1 },
/*0x017d*/ { 0xd3b8, 1 },
/*0x017e*/ { 0xd3ba, 1 },
/*0x017f*/ { 0xd3bb, 1 },
/*0x0180*/ { 0xb3bd, 1 },
/*0x0181*/ { 0xd3bf, 1 },
/*0x0182*/ { 0xb3c4, 1 },
/*0x0183*/ { 0xb3c5, 1 },
/*0x0184*/ { 0xb3c6, 1 },
/*0x0185*/ { 0xb3c9, 1 },
/*0x0186*/ { 0xb3ca, 1 },
/*0x0187*/ { 0x8594, 4 },
/*0x0188*/ { 0x8595, 4 },
/*0x0189*/ { 0x8596, 4 },
/*0x018a*/ { 0x8597, 4 },
/*0x018b*/ { 0x8598, 4 },
/*0x018c*/ { 0x8599, 4 },
/*0x018d*/ { 0x859a, 4 },
/*0x018e*/ { 0x859b, 4 },
/*0x018f*/ { 0x85a0, 4 },
/*0x0190*/ { 0x85a1, 4 },
/*0x0191*/ { 0x85a2, 4 },
/*0x0192*/ { 0x85a3, 4 },
/*0x0193*/ { 0xf310, 1 },
/*0x0194*/ { 0xd311, 1 },
/*0x0195*/ { 0xf312, 1 },
/*0x0196*/ { 0xd313, 1 },
/*0x0197*/ { 0xf314, 1 },
/*0x0198*/ { 0xd315, 1 },
/*0x0199*/ { 0xf316, 3 },
/*0x019a*/ { 0xd317, 1 },
/*0x019b*/ { 0xf318, 1 },
/*0x019c*/ { 0xd319, 1 },
/*0x019d*/ { 0xf31a, 1 },
/*0x019e*/ { 0xd31b, 1 },
/*0x019f*/ { 0xf293, 1 },
/*0x01a0*/ { 0xf2df, 1 },
/*0x01a1*/ { 0xf2e0, 1 },
/*0x01a2*/ { 0xd4ea, 1 },
/*0x01a3*/ { 0x8d24, 2 },
/*0x01a4*/ { 0x9d62, 47 },
/*0x01a5*/ { 0x84aa, 43 },
/*0x01a6*/ { 0x81cf, 41 },
/*0x01a7*/ { 0x858f, 40 },
/*0x01a8*/ { 0x80d5, 39 },
/*0x01a9*/ { 0x80ec, 39 },
/*0x01aa*/ { 0x80ed, 40 },
/*0x01ab*/ { 0x80d5, 41 },
/*0x01ac*/ { 0x80ec, 41 },
/*0x01ad*/ { 0x80ed, 42 },
/*0x01ae*/ { 0x80d5, 41 },
/*0x01af*/ { 0x80ec, 41 },
/*0x01b0*/ { 0x803a, 41 },
/*0x01b1*/ { 0x84e8, 43 },
/*0x01b2*/ { 0x84e9, 43 },
/*0x01b3*/ { 0x80cd, 42 },
/*0x01b4*/ { 0x80ce, 42 },
/*0x01b5*/ { 0x8039, 42 },
/*0x01b6*/ { 0x80cd, 44 },
/*0x01b7*/ { 0x80db, 16 },
/*0x01b8*/ { 0x80da, 16 },
/*0x01b9*/ { 0xf41c, 2 },
/*0x01ba*/ { 0xf434, 2 },
/*0x01bb*/ { 0xf44f, 2 },
/*0x01bc*/ { 0x0000, 0 },
};
// 44f8

View File

@ -11,12 +11,12 @@
// f7b0
s16 ciquiptable_bank1[][3] = {
{ 0x17a1, 0x17a2, 0x17a3 },
{ 0x17a4, 0x17a5, 0x17a6 },
{ 0x17a7, 0x17a8, 0x17a9 },
{ 0x17aa, 0x17ab, 0x17ac },
{ 0x17ad, 0x17ae, 0x17af },
{ 0x179e, 0x179f, 0x17a0 },
{ 0x17a1, 0x17a2, 0x17a3 }, // Carrington
{ 0x17a4, 0x17a5, 0x17a6 }, // Device training girl
{ 0x17a7, 0x17a8, 0x17a9 }, // Grimshaw
{ 0x17aa, 0x17ab, 0x17ac }, // Holo training girl
{ 0x17ad, 0x17ae, 0x17af }, // Hangar guy
{ 0x179e, 0x179f, 0x17a0 }, // Foster
};
// f7d4
@ -35,22 +35,30 @@ s16 ciquiptable_bank0[][3] = {
// f810
s16 ciquiptable_bank2[][3] = {
{ 0x177b, 0x177b, 0x177b },
{ 0x177d, 0x177d, 0x177d },
{ 0x1789, 0x178a, 0x178b },
{ 0x178d, 0x178d, 0x178d },
{ 0x1795, 0x1795, 0x1795 },
{ 0x1785, 0x1785, 0x1785 },
{ 0x177b, 0x177b, 0x177b }, // Carrington
{ 0x177d, 0x177d, 0x177d }, // Device training girl
{ 0x1789, 0x178a, 0x178b }, // Grimshaw
{ 0x178d, 0x178d, 0x178d }, // Holo training girl
{ 0x1795, 0x1795, 0x1795 }, // Hangar guy
{ 0x1785, 0x1785, 0x1785 }, // Foster
{ 0x1791, 0x1791, 0x1791 }, // Male "Don't you have to be somewhere?"
{ 0x1791, 0x1791, 0x1791 },
{ 0x1791, 0x1791, 0x1791 },
{ 0x1782, 0x1782, 0x1782 },
{ 0x1783, 0x1783, 0x1783 },
{ 0x1782, 0x1782, 0x1782 }, // Female "Don't you have to be somewhere?"
{ 0x1783, 0x1783, 0x1783 }, // "Bother someone else, would you?"
};
// f84c
s16 ciquiptable_bank3[] = {
0x0000, 0x1b1c, 0x1b1f, 0x1b20, 0x0000, 0x1b1e, 0x1b21, 0x1b21,
0x1b1d, 0x1b1d,
0x0000,
0x1b1c, // Device training girl "Thanks for coming back for me, Joanna"
0x1b1f, // Grimshaw "That was too close"
0x1b20, // Holo training girl "Quick, let's get to the hangar"
0x0000,
0x1b1e, // Foster "I knew I could rely on you, Joanna"
0x1b21, // Device training guy "Thanks, Jo"
0x1b21,
0x1b1d, // Female "Thanks"
0x1b1d,
};
// Table for cmd 01a3 (do_preset_animation)

View File

@ -491,6 +491,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr)
aibotGiveAmmoByType(chr->aibot, crate->ammotype, qty);
}
// Pickup sound
func0f0939f8(NULL, prop, 0xea, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
@ -541,6 +542,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr)
}
}
// Pickup sound
func0f0939f8(NULL, prop, 0xea, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
@ -594,6 +596,7 @@ u32 propobjHandlePickupByAibot(struct prop *prop, struct chrdata *chr)
{
struct shieldobj *shield = (struct shieldobj *)prop->obj;
// Shield pickup sound
func0f0939f8(NULL, prop, 0x1cd, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);

View File

@ -70,9 +70,11 @@ void func0f199a40(struct chrdata *chr, u32 index, bool arg2)
if (arg2) {
if (aibot->weaponnum == WEAPON_FARSIGHTXR20) {
// FarSight reload sound
func0f0939f8(NULL, chr->prop, 0x433, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
} else {
// Normal reload sound
func0f0939f8(NULL, chr->prop, 0x804f, -1,
-1, 1024, 0, 0, 0, -1, 0, -1, -1, -1, -1);
}
@ -914,6 +916,7 @@ void aibotCreateSlayerRocket(struct chrdata *chr)
rocket->base.unk48->unkf4 = 0;
rocket->base.unk48->unkb4 = 0x20000000;
// Fire rocket sound
func0f0939f8(NULL, rocket->base.prop, 0x8053, -1,
-1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1);

View File

@ -38425,37 +38425,37 @@ glabel var7f1aac40
/* f087b08: 00000000 */ sll $zero,$zero,0x0
);
void func0f087b0c(u32 arg0)
void func0f087b0c(u32 ammotype)
{
switch (arg0) {
case 1:
case 2:
case 4:
case 5:
case 7:
case 8:
case 10:
case 11:
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
case 30:
switch (ammotype) {
case AMMOTYPE_PISTOL:
case AMMOTYPE_SMG:
case AMMOTYPE_RIFLE:
case AMMOTYPE_SHOTGUN:
case AMMOTYPE_GRENADE:
case AMMOTYPE_ROCKET:
case AMMOTYPE_MAGNUM:
case AMMOTYPE_DEVASTATOR:
case AMMOTYPE_REAPER:
case AMMOTYPE_HOMINGROCKET:
case AMMOTYPE_DART:
case AMMOTYPE_NBOMB:
case AMMOTYPE_SEDATIVE:
case AMMOTYPE_CLOAK:
case AMMOTYPE_BOOST:
case AMMOTYPE_TOKEN:
func00010904(var80095200, 0xea, 0, -1, -1, -1, -1, -1);
break;
case 12:
case 13:
case 14:
case 24:
case 25:
case 26:
case 32:
case AMMOTYPE_REMOTE_MINE:
case AMMOTYPE_PROXY_MINE:
case AMMOTYPE_TIMED_MINE:
case AMMOTYPE_BUG:
case AMMOTYPE_MICROCAMERA:
case AMMOTYPE_PLASTIQUE:
case AMMOTYPE_ECM_MINE:
func00010904(var80095200, 0xeb, 0, -1, -1, -1, -1, -1);
break;
case 9:
case AMMOTYPE_KNIFE:
func00010904(var80095200, 0xe9, 0, -1, -1, -1, -1, -1);
break;
}

View File

@ -2597,11 +2597,11 @@
* lists.
*
* There are several banks (tables) of sound IDs. One for Skedar, one for
* Maians, and two banks (0 and 1) for humans. The human bank 0 is divided into
* four subbanks. Each subbank has similar phrases to the other subbanks but
* each subbank uses a different style of voice. The subbank used is determined
* by the chr's voicebox property. This allows them to have the same sounding
* voice among all their phrases.
* Maians, one for general guard speech and one for special character speech.
* The guard speech bank is divided into four subbanks. Each subbank has similar
* phrases to the other subbanks but each subbank uses a different style of
* voice. The subbank used is determined by the chr's voicebox property. This
* allows them to have the same sounding voice among all their phrases.
*
* Each bank (table) contains rows and columns. The row can be selected via an
* argument to this command, but the column is determined randomly. All tables
@ -2615,8 +2615,8 @@
* player has died then it'll attempt to use the coop player. If all players
* have died then it's likely their line will not be said.
*
* The row argument determines which row in the bank is used. Counting starts
* from 0.
* The quip argument determines which row in the bank is used. For guard speech
* you should use a QUIP constant, otherwise use the row number.
*
* The probability argument determines the likelihood that the chr will say
* the line. The higher the number (up to 255), the more likely they are to
@ -2633,8 +2633,8 @@
* 255 = always talk, even if other chrs are nearby and talking
* (this applies after the probability check has passed)
*
* The bank argument determines which bank is used. Expected values are 0 or 1.
* For Skedar and Maians, this argument is ignored and they use their own banks.
* If special is true, the special bank will be used. For Skedar and Maians,
* this argument is ignored and they use their own banks.
*
* The textrow argument determines whether text will be shown on the screen as
* well as which row in the text bank will be used. Set to 0 to have no text.
@ -2647,17 +2647,17 @@
*
* -----------------------------------------------------------------------------
*
* If called with zero values for all of row, probability and onlyifothers,
* If called with zero values for all of quip, probability and onlyifothers,
* the chr's current speech (if any) will be stopped.
*/
#define say_quip(player, row, probability, soundgap, onlyifothers, bank, textrow, colour) \
#define say_quip(player, quip, probability, soundgap, onlyifothers, special, textrow, colour) \
mkshort(0x0130), \
player, \
row, \
quip, \
probability, \
soundgap, \
onlyifothers, \
bank, \
special, \
textrow, \
colour,

View File

@ -2181,17 +2181,59 @@
#define PROPTYPE_EXPLOSION 7
#define PROPTYPE_EFFECT 8
#define QUIP_ATTACK1 0
#define QUIP_ATTACK2 1
#define QUIP_GOTOCOVER1 2
#define QUIP_GRENADE1 3
#define QUIP_RETREAT1 4
#define QUIP_GRENADE2 5
#define QUIP_RETREAT2 6
#define QUIP_FLANK 7
#define QUIP_SURRENDER 8
#define QUIP_HEARNOISE 9
#define QUIP_10 10
#define QUIP_SEEPLAYER 11
#define QUIP_SHOTUNALERT 12
#define QUIP_INJURED1 13
#define QUIP_INJURED2 14
#define QUIP_KILLEDPLAYER1 15
#define QUIP_WARNFRIENDS 16
#define QUIP_17 17
#define QUIP_SURPRISED 18
#define QUIP_INSPECTBODY 19
#define QUIP_20 20
#define QUIP_HITPLAYER 21
#define QUIP_MISSEDPLAYER1 22
#define QUIP_MISSEDPLAYER2 23
#define QUIP_GOTOCOVER2 24
#define QUIP_DIE 25
#define QUIP_26 26
#define QUIP_SEARCHSUCCESS 27
#define QUIP_SEEEYESPY 28
#define QUIP_GREETING 29
#define QUIP_ASKWEAPON1 30
#define QUIP_ASKWEAPON2 31
#define QUIP_UNCOVERDISGUISE1 32
#define QUIP_LOSTGUN 33
#define QUIP_GOFORALARM 34
#define QUIP_SEARCHFAIL 35
#define QUIP_ATTACK3 36
#define QUIP_ATTACK4 37
#define QUIP_KILLEDPLAYER2 38
#define QUIP_GUNJAMMED 39
#define QUIP_UNCOVEREDDISGUISE2 40
#define RACE_HUMAN 0
#define RACE_SKEDAR 1
#define RACE_DRCAROLL 2
#define RACE_EYESPY 3
#define RACE_ROBOT 4
#define ROOMFLAG_DISABLED 0x0001
#define ROOMFLAG_VISIBLEBYPLAYER 0x0004
#define ROOMFLAG_VISIBLEBYAIBOT 0x0008
#define ROOMFLAG_4000 0x4000
#define ROOMFLAG_8000 0x8000
#define ROOMFLAG_DISABLED 0x0001
#define ROOMFLAG_VISIBLEBYPLAYER 0x0004
#define ROOMFLAG_VISIBLEBYAIBOT 0x0008
#define ROOMFLAG_4000 0x4000
#define ROOMFLAG_8000 0x8000
#define SAVEFILEFLAG_P1_FORWARDPITCH 0x00
#define SAVEFILEFLAG_P1_AUTOAIM 0x01

View File

@ -16,7 +16,7 @@ u32 func0f093508(void);
u32 func0f093630(void);
u32 func0f093790(void);
u32 func0f0938ec(void);
u32 func0f0939f8(void *arg0, struct prop *prop, s16 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, f32 arg9, s32 arg10, s32 arg11, f32 arg12, f32 arg13, f32 arg14);
u32 func0f0939f8(void *arg0, struct prop *prop, s16 sound, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, f32 arg9, s32 arg10, s32 arg11, f32 arg12, f32 arg13, f32 arg14);
void audioMuteChannel(s32 channel);
u32 audioIfChannelIdle(s32 channel);
bool audioPlayFromProp2(s8 channel_id, s32 audio_id, s32 volumemaybe, struct prop *prop, u32 arg4, s32 arg5, s32 arg6, s32 arg7);

View File

@ -236,7 +236,7 @@ void propObjGetBbox(struct prop *prop, f32 *width, f32 *ymax, f32 *ymin);
u32 func0f087638(void);
u32 func0f087668(void);
u32 func0f08791c(void);
void func0f087b0c(u32 arg0);
void func0f087b0c(u32 ammotype);
u32 propPlayPickupSound(struct prop *prop, s32 weapon);
void func0f087d10(s32 weaponnum);
u32 func0f087e40(void);