From 9d74728a261783a3197e0ecbd3f41928dcef04e2 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 25 May 2021 21:11:34 +1000 Subject: [PATCH] Decompile chrTryPunch --- src/files/setup/setupame.c | 2 +- src/files/setup/setupazt.c | 12 +- src/files/setup/setupcave.c | 10 +- src/files/setup/setupdam.c | 6 +- src/files/setup/setupdepo.c | 40 +-- src/files/setup/setupimp.c | 22 +- src/files/setup/setuplee.c | 8 +- src/files/setup/setuppam.c | 6 +- src/files/setup/setuppete.c | 4 +- src/files/setup/setupstat.c | 24 +- src/files/setup/setuptra.c | 2 +- src/files/setup/setupwax.c | 16 +- src/game/chr/chraction.c | 535 ++++++++----------------------- src/game/chr/chraicommands.c | 2 +- src/game/data/ailists.c | 4 +- src/game/game_02cde0.c | 3 +- src/game/game_0b69d0.c | 8 +- src/include/constants.h | 6 +- src/include/game/chr/chraction.h | 8 +- 19 files changed, 228 insertions(+), 490 deletions(-) diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index b2df5541f..e0c89b9c9 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -432,7 +432,7 @@ u32 props[] = { singlemonitor(0x0100, MODEL_PC1, 0x0230, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, 0, 0, 1000, 35) singlemonitor(0x0100, MODEL_PC1, 0x0233, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, 0, 0, 1000, 35) singlemonitor(0x0100, MODEL_PC1, 0x0234, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_ILLUMINATED, 0, 0, 1000, 3) - chr(SPAWNFLAG_00000200, 0x06, 0x0011, BODY_DD_GUARD, HEAD_RANDOM, 0x040a, 0x001d, -1, 1000, 9, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_01, -1, 3, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x06, 0x0011, BODY_DD_GUARD, HEAD_RANDOM, 0x040a, 0x001d, -1, 1000, 9, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_01, -1, 3, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0006, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x05, 0x01c0, BODY_DD_GUARD, HEAD_RANDOM, AILIST_INIT_DD_GUARD, 0x001e, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00200000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_08000000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0005, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index 8ec03d4da..ba07e5f0b 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -158,17 +158,17 @@ u32 props[] = { weapon(0x0100, MODEL_CHRDY357TRENT, 0x0001, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357LX) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_RTRACKED | SPAWNFLAG_BLUESIGHT, 0x05, 0x01b6, BODY_PRESIDENT, HEAD_PRESIDENT, AILIST_INIT_PRESIDENT, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_RTRACKED, 0x08, 0x0086, BODY_PRESIDENT_CLONE2, HEAD_PRESIDENT, 0x041a, -1, -1, 1000, 20, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) - chr(SPAWNFLAG_00000200, 0x2a, 0x0088, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x2a, 0x0088, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x002a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) - chr(SPAWNFLAG_00000200, 0x2b, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x2b, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x002b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) - chr(SPAWNFLAG_00000200, 0x2c, 0x0085, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x2c, 0x0085, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_09, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x002c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) - chr(SPAWNFLAG_00000200, 0x2d, 0x019e, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x2d, 0x019e, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x002d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) - chr(SPAWNFLAG_00000200, 0x2e, 0x018e, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x2e, 0x018e, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x002e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) - chr(SPAWNFLAG_00000200, 0x2f, 0x01a7, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 2, 0, 20, 0) + chr(SPAWNFLAG_00000200, 0x2f, 0x01a7, BODY_MRBLONDE, HEAD_MRBLONDE, AILIST_INIT_BLONDE, -1, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_0A, -1, 0, 2, 0, 20, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x002f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) chr(0, 0x30, 0x002d, BODY_STRIPES, HEAD_RANDOM, AILIST_SPAWNER, -1, -1, 100, 13, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0B, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x0030, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 68b0f811f..f5a7265b5 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -155,12 +155,12 @@ u32 props[] = { weapon(0x0100, MODEL_CHRDRAGON, 0x0008, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON) chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x09, 0x0031, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041c, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDRAGON, 0x0009, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON) - chr(SPAWNFLAG_00000200, 0x10, 0x003a, BODY_NSA_LACKEY, HEAD_RANDOM, AILIST_NSA, 0x003a, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000001 | CHRFLAG1_00000080 | CHRFLAG1_00000800, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x10, 0x003a, BODY_NSA_LACKEY, HEAD_RANDOM, AILIST_NSA, 0x003a, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000001 | CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_00000800, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0a, 0x003d, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041d, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDRAGON, 0x000a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON) chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0b, 0x005b, BODY_ALASKAN_GUARD, HEAD_RANDOM, 0x041e, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_07, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDRAGON, 0x000b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DRAGON) - chr(SPAWNFLAG_00000200, 0x11, 0x0072, BODY_NSA_LACKEY, HEAD_RANDOM, AILIST_NSA, 0x0072, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000001 | CHRFLAG1_00000080 | CHRFLAG1_00000800, TEAM_ENEMY, SQUADRON_05, -1, 0, 1, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x11, 0x0072, BODY_NSA_LACKEY, HEAD_RANDOM, AILIST_NSA, 0x0072, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000001 | CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_00000800, TEAM_ENEMY, SQUADRON_05, -1, 0, 1, 0, 0, 0) chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_FIXEDHEIGHT, 0x0c, 0x00c2, BODY_ALASKAN_GUARD, HEAD_RANDOM, AILIST_ALASKAN_CONSOLE_GUARD, 0x0156, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION | CHRFLAG1_CAN_DRAW_PISTOL, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 5, 0, 0) chr(SPAWNFLAG_00000200, 0x12, 0x00c1, BODY_NSA_LACKEY, HEAD_RANDOM, AILIST_INIT_TAKEOVER_LACKEY, -1, -1, 200, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000800, TEAM_ENEMY, SQUADRON_06, -1, 0, 2, 0, 0, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) @@ -2439,7 +2439,7 @@ u8 func040f_nsa[] = { chr_toggle_p1p2(CHR_SELF) set_target_chr(CHR_P1P2) if_distance_to_target_lt(250, /*goto*/ 0x64) - if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33) + if_self_flag_bankx_eq(CHRFLAG0_CHUCKNORRIS, TRUE, BANK_0, /*goto*/ 0x33) if_chr_in_room(CHR_TARGET, 0x00, 0x006b, /*goto*/ 0x31) if_chr_in_room(CHR_TARGET, 0x00, 0x006c, /*goto*/ 0x31) if_chr_in_room(CHR_TARGET, 0x00, 0x006d, /*goto*/ 0x31) @@ -2482,7 +2482,7 @@ u8 func040f_nsa[] = { // Seen player down escalator label(0x02) - if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33) + if_self_flag_bankx_eq(CHRFLAG0_CHUCKNORRIS, TRUE, BANK_0, /*goto*/ 0x33) if_chr_in_room(CHR_TARGET, 0x00, 0x006b, /*goto*/ 0x04) if_chr_in_room(CHR_TARGET, 0x00, 0x006c, /*goto*/ 0x04) if_chr_in_room(CHR_TARGET, 0x00, 0x006d, /*goto*/ 0x04) @@ -2548,7 +2548,7 @@ u8 func040f_nsa[] = { goto_next(0x07) label(0x02) - if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x33) + if_self_flag_bankx_eq(CHRFLAG0_CHUCKNORRIS, TRUE, BANK_0, /*goto*/ 0x33) if_chr_in_room(CHR_TARGET, 0x00, 0x006b, /*goto*/ 0x31) if_chr_in_room(CHR_TARGET, 0x00, 0x006c, /*goto*/ 0x31) if_chr_in_room(CHR_TARGET, 0x00, 0x006d, /*goto*/ 0x31) diff --git a/src/files/setup/setupdam.c b/src/files/setup/setupdam.c index bb3b18fb2..c25c9c1b0 100644 --- a/src/files/setup/setupdam.c +++ b/src/files/setup/setupdam.c @@ -136,7 +136,7 @@ u32 props[] = { fail_flags(STAGEFLAG_ELVIS_DEAD) endobjective - chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, 0x0024, BODY_THEKING, HEAD_ELVIS_GOGS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, 0x0024, BODY_THEKING, HEAD_ELVIS_GOGS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_PHOENIX) chr(0, 0x02, 0x0027, BODY_PELAGIC_GUARD, HEAD_MOTO, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0002, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_FARSIGHT) @@ -262,7 +262,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRCMP150, 0x0022, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x23, 0x013f, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 10, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_10000000 | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0023, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200, 0x2c, 0x014c, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x2c, 0x014c, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x2b, 0x014b, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_00008000 | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x002b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) @@ -305,7 +305,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRCMP150, 0x004b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x4c, 0x016c, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_04000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x004c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200, 0x4d, 0x016d, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_04000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00000080, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x4d, 0x016d, BODY_PELAGIC_GUARD, HEAD_RANDOM, AILIST_GUARD_UNALERTED, -1, -1, 1000, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_04000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_04, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x004d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x55, 0x0012, BODY_PELAGIC_GUARD, HEAD_RANDOM, 0x0407, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_04000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_02000000, TEAM_04, SQUADRON_0A, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0055, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CMP150) diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index a5cd90287..6fc33a55d 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -203,56 +203,56 @@ u32 props[] = { chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x07, 0x005c, BODY_G5_GUARD, HEAD_BEAU1, 0x0409, -1, -1, 200, 100, CHRFLAG0_CANT_ALERT_GROUP | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0007, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0c, 0x005b, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0c, 0x005b, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0d, 0x001f, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0d, 0x001f, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0073, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0e, 0x0067, BODY_G5_GUARD, HEAD_RANDOM, 0x040a, 0x0073, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0e, 0x0067, BODY_G5_GUARD, HEAD_RANDOM, 0x040a, 0x0073, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_NONCOMBAT, SQUADRON_05, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0f, 0x0039, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x0f, 0x0039, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x10, 0x0068, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x10, 0x0068, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0010, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x11, 0x0069, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x11, 0x0069, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, 0x0074, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0011, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) #if VERSION >= VERSION_PAL_FINAL - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) #else - chr(SPAWNFLAG_00000200, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) + chr(SPAWNFLAG_00000200, 0x12, 0x003f, BODY_G5_GUARD, HEAD_RANDOM, 0x040b, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_06, -1, 0, 2, 0, 7, 0) #endif weapon(0x0100, MODEL_CHRCMP150, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) #if VERSION >= VERSION_PAL_FINAL - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #else - chr(SPAWNFLAG_00000200, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x13, 0x006a, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #endif weapon(0x0100, MODEL_CHRCMP150, 0x0013, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) #if VERSION >= VERSION_PAL_FINAL - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #else - chr(SPAWNFLAG_00000200, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x14, 0x006b, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #endif weapon(0x0100, MODEL_CHRCMP150, 0x0014, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) #if VERSION >= VERSION_PAL_FINAL - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #else - chr(SPAWNFLAG_00000200, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x15, 0x006c, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #endif weapon(0x0100, MODEL_CHRCMP150, 0x0015, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) #if VERSION >= VERSION_PAL_FINAL - chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200 | SPAWNFLAG_ANTINONINTERACTABLE, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #else - chr(SPAWNFLAG_00000200, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x16, 0x006d, BODY_G5_GUARD, HEAD_RANDOM, AILIST_INIT_TYPE1_GUARD, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_NONCOMBAT, SQUADRON_07, -1, 0, 0, 0, 0, 0) #endif weapon(0x0100, MODEL_CHRCMP150, 0x0016, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) @@ -260,12 +260,12 @@ u32 props[] = { weapon(0x0100, MODEL_CHRCMP150, 0x0017, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) tag(0x0d, 1) - chr(SPAWNFLAG_ANTINONINTERACTABLE, CHR_CASS, 0x0088, BODY_CASSANDRA, HEAD_CASSANDRA, 0x0410, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, 0x4a, 0, 0, 1, 0, 0) - chr(SPAWNFLAG_ANTINONINTERACTABLE, CHR_BLONDE, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0410, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, 0x4b, 0, 0, 1, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE, CHR_CASS, 0x0088, BODY_CASSANDRA, HEAD_CASSANDRA, 0x0410, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, 0x4a, 0, 0, 1, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE, CHR_BLONDE, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0410, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, 0x4b, 0, 0, 1, 0, 0) chr(SPAWNFLAG_ANTINONINTERACTABLE, CHR_INTRO_VICTIM, 0x0009, BODY_G5_GUARD, HEAD_RANDOM, 0x0410, -1, -1, 1000, 100, CHRFLAG0_CAN_RETREAT | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, CHR_INTRO_VICTIM, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_ANTINONINTERACTABLE, CHR_TRENT, 0x003b, BODY_TRENT, HEAD_TRENT, 0x0411, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) - chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_ANTINONINTERACTABLE, CHR_STRIPES, 0x003c, BODY_STRIPES, HEAD_JON, 0x0411, -1, -1, 200, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_ANTINONINTERACTABLE, CHR_TRENT, 0x003b, BODY_TRENT, HEAD_TRENT, 0x0411, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_ANTINONINTERACTABLE, CHR_STRIPES, 0x003c, BODY_STRIPES, HEAD_JON, 0x0411, -1, -1, 200, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) tag(OBJ_GENERATOR, 1) multimonitor(0x0100, MODEL_PD_CONSOLE, 0x00d0, OBJFLAG_00000001 | OBJFLAG_00000020 | OBJFLAG_00000040 | OBJFLAG_00000080 | OBJFLAG_00000100, OBJFLAG2_00000001, OBJFLAG3_00010000, 1000, 3, 3, 0, 0) tag(0x3f, 1) diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index b1b447e9b..a82515edb 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -306,25 +306,25 @@ u32 props[] = { weapon(0x0100, MODEL_CHRAVENGER, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) chr(0, 0x13, 0x003a, BODY_DDSHOCK, HEAD_RANDOM, AILIST_SPAWNER4, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00001000 | CHRFLAG1_00100000 | CHRFLAG1_00200000, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x0013, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) - chr(0, 0x15, 0x013c, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013c, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x15, 0x013c, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013c, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x0015, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x16, 0x013d, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013d, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x16, 0x013d, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013d, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x0016, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x17, 0x013e, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013e, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x17, 0x013e, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013e, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x0017, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x18, 0x013f, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013f, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x18, 0x013f, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x013f, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x0018, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x1b, 0x0143, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0143, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x1b, 0x0143, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0143, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x001b, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x1c, 0x0144, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0144, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x1c, 0x0144, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0144, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x001c, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x1d, 0x0145, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x00b1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x1d, 0x0145, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x00b1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x001d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x1e, 0x0146, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0146, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x1e, 0x0146, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0146, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x001e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x19, 0x0140, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0140, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x19, 0x0140, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0140, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x0019, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, 0x1a, 0x0141, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0141, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, 0x1a, 0x0141, BODY_CISOLDIER, HEAD_RANDOM, GAILIST_IDLE, 0x0141, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_CANLOSEGUN, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x001a, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) chr(0, 0x1f, 0x014b, BODY_DDSHOCK, HEAD_RANDOM, AILIST_INIT_SHOCK, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST, CHRFLAG1_00100000 | CHRFLAG1_00200000, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAVENGER, 0x001f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_K7AVENGER) @@ -368,7 +368,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRMAULER, 0x0033, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_FIXEDHEIGHT, 0x34, 0x003a, BODY_SKEDAR, HEAD_RANDOM, GAILIST_STOP_AND_IDLE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_SQUADALERTANYDIST, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0034, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) - chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_BLUESIGHT, 0x38, 0x0051, BODY_CISOLDIER, HEAD_JONATHAN, AILIST_INIT_JONATHAN, 0x0051, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_BLUESIGHT, 0x38, 0x0051, BODY_CISOLDIER, HEAD_JONATHAN, AILIST_INIT_JONATHAN, 0x0051, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x0038, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM) tag(0x06, 1) autogun(0x00a6, MODEL_CI_ROOFGUN, 0x0235, OBJFLAG_00000004, OBJFLAG2_00000001 | OBJFLAG2_00002000, 0, 1000, 0x0075, 0x00005555, 0xffffaaab, 0x00000aaa, 0x00320000) diff --git a/src/files/setup/setuplee.c b/src/files/setup/setuplee.c index db3b2b43a..179042d3b 100644 --- a/src/files/setup/setuplee.c +++ b/src/files/setup/setuplee.c @@ -161,9 +161,9 @@ u32 props[] = { door(0x0100, MODEL_SK_SHIP_DOOR2, 0x0181, OBJFLAG_ILLUMINATED | OBJFLAG_DEACTIVATED, 0, 0, 1000, 0x00010000, 0x00010000, 0x00050000, 0x00002aaa, 0x00000ccc, 0, DOORTYPE_SLIDING, 0x00000000, 0x000000f0, 0x00000000, 0xffffffff, 0x00000000) lift_door(-2, -3, 0) lift_door(-2, -4, 0) - chr(SPAWNFLAG_00000200, 0x01, 0x01cf, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_KNIFEABLE_SKEDAR, -1, -1, 1000, 8, 0, CHRFLAG1_00000080, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x01, 0x01cf, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_KNIFEABLE_SKEDAR, -1, -1, 1000, 8, 0, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0001, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) - chr(0, 0x35, 0x00e8, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_SHY_SKEDAR, -1, -1, 1000, 6, CHRFLAG0_00002000, CHRFLAG1_00000080, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) + chr(0, 0x35, 0x00e8, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_SHY_SKEDAR, -1, -1, 1000, 6, CHRFLAG0_00002000, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_ENEMY, SQUADRON_00, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0035, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) chr(SPAWNFLAG_00000200, 0x05, 0x01cd, BODY_SKEDAR, HEAD_RANDOM, 0x0401, -1, -1, 100, 200, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 2, 0, 4, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0005, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) @@ -182,7 +182,7 @@ u32 props[] = { chr(SPAWNFLAG_BLUESIGHT, 0x2f, 0x01d9, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_INIT_HANGAR_MAIAN, 0x00b4, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x002f, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CALLISTO) chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_BLUESIGHT, 0x30, 0x01f5, BODY_ELVIS1, HEAD_MAIAN_S, GAILIST_IDLE, 0x00b4, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) - chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, 0x00fe, BODY_ELVISWAISTCOAT, HEAD_ELVIS, AILIST_ELVIS_WAIT_FOR_HANGAR_ENTRY, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_80000000, TEAM_NONCOMBAT, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, 0x00fe, BODY_ELVISWAISTCOAT, HEAD_ELVIS, AILIST_ELVIS_WAIT_FOR_HANGAR_ENTRY, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_PUNCHHARDER, TEAM_NONCOMBAT, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_PHOENIX) weapon(0x0100, MODEL_CHRMAIANPISTOL, 0x0000, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_PHOENIX) link_guns(-1, -2) @@ -255,7 +255,7 @@ u32 props[] = { chr(0, 0x32, 0x0096, BODY_SKEDAR, HEAD_RANDOM, 0x0415, -1, -1, 1000, 200, CHRFLAG0_00000004 | CHRFLAG0_00002000, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0032, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) chr(0, 0x33, 0x00db, BODY_CASSANDRA, HEAD_CASSANDRA, AILIST_INIT_CASS, -1, -1, 1000, 200, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_10000000 | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) - chr(SPAWNFLAG_FIXEDHEIGHT, 0x34, 0x00e3, BODY_SKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_10000000 | CHRFLAG0_NOHEAR, CHRFLAG1_00000080, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_FIXEDHEIGHT, 0x34, 0x00e3, BODY_SKEDAR, 0x00, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_10000000 | CHRFLAG0_NOHEAR, CHRFLAG1_ADJUSTPUNCHSPEED, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0034, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) chr(SPAWNFLAG_00000200, 0x27, 0x0002, BODY_SKEDAR, HEAD_RANDOM, AILIST_INIT_SKEDAR, -1, -1, 1000, 200, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_0E, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0027, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_MAULER) diff --git a/src/files/setup/setuppam.c b/src/files/setup/setuppam.c index 15ed62687..b978c6451 100644 --- a/src/files/setup/setuppam.c +++ b/src/files/setup/setuppam.c @@ -140,13 +140,13 @@ u32 props[] = { fail_flags(STAGEFLAG_TIMER_EXPIRED) endobjective - chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x40, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE, 0x40, 0x01b3, BODY_DDSNIPER, HEAD_RANDOM, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRSHOTGUN, 0x0040, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SHOTGUN) #if VERSION >= VERSION_PAL_FINAL - chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) #else - chr(SPAWNFLAG_BLUESIGHT, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_BLUESIGHT, 0x00, 0x002e, BODY_THEKING, HEAD_ELVIS, GAILIST_IDLE, -1, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) #endif weapon(0x0100, MODEL_CHRZ2020, 0x0000, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_FARSIGHT) diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index 052b33fce..2d3d0c339 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -1470,7 +1470,7 @@ u8 func0412_cia[] = { endloop(0x3a) label(0x04) - set_self_flag_bankx(CHRFLAG0_00000080, BANK_0) + set_self_flag_bankx(CHRFLAG0_CHUCKNORRIS, BANK_0) set_squadron(SQUADRON_03) endloop(0x38) @@ -1488,7 +1488,7 @@ u8 func0412_cia[] = { // Alerted label(0x0c) set_action(MA_NORMAL, FALSE) - if_self_flag_bankx_eq(CHRFLAG0_00000080, FALSE, BANK_0, /*goto*/ 0x03) + if_self_flag_bankx_eq(CHRFLAG0_CHUCKNORRIS, FALSE, BANK_0, /*goto*/ 0x03) set_squadron(SQUADRON_04) rebuild_teams rebuild_squadrons diff --git a/src/files/setup/setupstat.c b/src/files/setup/setupstat.c index 965618770..dc6e8d0a3 100644 --- a/src/files/setup/setupstat.c +++ b/src/files/setup/setupstat.c @@ -89,40 +89,40 @@ u32 props[] = { complete_flags(STAGEFLAG_KING3_DEAD) endobjective - chr(0, CHR_MAIAN_LEADER, 0x004f, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_INIT_LEADER, 0x004e, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN_LEADER, 0x004f, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_INIT_LEADER, 0x004e, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x003d, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_CALLISTO) - chr(0, CHR_MAIAN_TEMPLATE, 0x0045, BODY_CISOLDIER, HEAD_RANDOM, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN_TEMPLATE, 0x0045, BODY_CISOLDIER, HEAD_RANDOM, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x003e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, CHR_KING1, 0x007c, BODY_SKEDARKING, HEAD_RANDOM, AILIST_INIT_KING, 0x007c, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00000008 | CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) + chr(0, CHR_KING1, 0x007c, BODY_SKEDARKING, HEAD_RANDOM, AILIST_INIT_KING, 0x007c, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00000008 | CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRSKMINIGUN, 0x0040, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_REAPER) - chr(SPAWNFLAG_ONLYONSA | SPAWNFLAG_ONLYONPA, CHR_KING2, 0x0110, BODY_SKEDARKING, HEAD_RANDOM, AILIST_INIT_KING, 0x0091, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ONLYONSA | SPAWNFLAG_ONLYONPA, CHR_KING2, 0x0110, BODY_SKEDARKING, HEAD_RANDOM, AILIST_INIT_KING, 0x0091, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRSKROCKET, 0x0041, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_SLAYER) - chr(SPAWNFLAG_ONLYONPA, CHR_KING3, 0x0094, BODY_SKEDARKING, HEAD_RANDOM, AILIST_INIT_KING, 0x0094, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ONLYONPA, CHR_KING3, 0x0094, BODY_SKEDARKING, HEAD_RANDOM, AILIST_INIT_KING, 0x0094, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_KINGSCEPTRE, 0x0042, OBJFLAG_00002000 | OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_ROCKETLAUNCHER_34) - chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_00000200, CHR_BLONDE, 0x0077, BODY_SKEDAR, HEAD_MRBLONDE, AILIST_KING1_SKEDAR, 0x0022, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_IGNORECOLLISION | SPAWNFLAG_00000200, CHR_BLONDE, 0x0077, BODY_SKEDAR, HEAD_MRBLONDE, AILIST_KING1_SKEDAR, 0x0022, -1, 1000, 200, CHRFLAG0_00002000, CHRFLAG1_00004000 | CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAULER, 0x0043, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_MAULER) - chr(0, CHR_SKEDAR_TEMPLATE, 0x007d, BODY_CISOLDIER, HEAD_RANDOM, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) + chr(0, CHR_SKEDAR_TEMPLATE, 0x007d, BODY_CISOLDIER, HEAD_RANDOM, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRAR34, 0x003f, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_AR34) - chr(0, CHR_MAIAN1, 0x0009, BODY_ELVIS1, HEAD_MAIAN_S, GAILIST_IDLE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN1, 0x0009, BODY_ELVIS1, HEAD_MAIAN_S, GAILIST_IDLE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x0044, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CALLISTO) - chr(0, CHR_MAIAN2, 0x00a4, BODY_ELVIS1, HEAD_MAIAN_S, GAILIST_IDLE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN2, 0x00a4, BODY_ELVIS1, HEAD_MAIAN_S, GAILIST_IDLE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_ALLY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x0045, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CALLISTO) - chr(0, CHR_MAIAN3, 0x0008, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_01, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN3, 0x0008, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_01, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x0046, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CALLISTO) - chr(0, CHR_MAIAN4, 0x000c, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_01, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN4, 0x000c, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_01, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x0047, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CALLISTO) - chr(0, CHR_MAIAN5, 0x000d, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_80000000, TEAM_01, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(0, CHR_MAIAN5, 0x000d, BODY_ELVIS1, HEAD_MAIAN_S, AILIST_HIDE, -1, -1, 200, 100, CHRFLAG0_00002000 | CHRFLAG0_AIVSAI, CHRFLAG1_00100000 | CHRFLAG1_00200000 | CHRFLAG1_40000000 | CHRFLAG1_PUNCHHARDER, TEAM_01, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRMAIANSMG, 0x0048, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CALLISTO) conditional_scenery(1, 0, 2) diff --git a/src/files/setup/setuptra.c b/src/files/setup/setuptra.c index b20194a40..85b20ef40 100644 --- a/src/files/setup/setuptra.c +++ b/src/files/setup/setuptra.c @@ -187,7 +187,7 @@ u32 props[] = { weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0015, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_SUPERDRAGON) chr(SPAWNFLAG_00000200, 0x16, 0x03f8, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_HIDDEN_GUARDTYPE1, -1, -1, 1000, 100, CHRFLAG0_AIVSAI | CHRFLAG0_04000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0C, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRSUPERDRAGON, 0x0016, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SUPERDRAGON) - chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x21, 0x03f9, BODY_A51AIRMAN, HEAD_JONATHAN, AILIST_INIT_JONATHAN, -1, -1, 1000, 100, CHRFLAG0_04000000 | CHRFLAG0_08000000, CHRFLAG1_00100000 | CHRFLAG1_80000000, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x21, 0x03f9, BODY_A51AIRMAN, HEAD_JONATHAN, AILIST_INIT_JONATHAN, -1, -1, 1000, 100, CHRFLAG0_04000000 | CHRFLAG0_08000000, CHRFLAG1_00100000 | CHRFLAG1_PUNCHHARDER, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x0021, OBJFLAG_ASSIGNEDTOCHR | OBJFLAG_DEACTIVATED, 0, 0, WEAPON_DY357MAGNUM) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, 0x22, 0x010a, BODY_ELVIS1, HEAD_ELVIS, GAILIST_IDLE, -1, -1, 1000, 100, CHRFLAG0_04000000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ALLY, SQUADRON_03, -1, 0, 0, 0, 0, 0) chr(0, 0x17, 0x0119, BODY_AREA51GUARD, HEAD_RANDOM, AILIST_HIDDEN_GUARDTYPE2, -1, -1, 1000, 100, CHRFLAG0_AIVSAI | CHRFLAG0_04000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_0D, -1, 0, 0, 0, 0, 0) diff --git a/src/files/setup/setupwax.c b/src/files/setup/setupwax.c index 127f5f984..ac65eeb22 100644 --- a/src/files/setup/setupwax.c +++ b/src/files/setup/setupwax.c @@ -346,16 +346,16 @@ u32 props[] = { chr(SPAWNFLAG_00000200, 0x13, 0x0222, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_40HP_GUARD, -1, -1, 500, 100, CHRFLAG0_00002000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_02, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0013, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200, 0x0e, 0x01fe, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_10000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x0e, 0x01fe, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_10000000, TEAM_ENEMY, SQUADRON_06, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x000e, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200, 0x12, 0x01fc, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_10000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x12, 0x01fc, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_SEARCHING_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_10000000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0012, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200, 0x03, 0x021c, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x03, 0x021c, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0003, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) - chr(SPAWNFLAG_00000200, 0x04, 0x021d, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_00000080 | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x04, 0x021d, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_40HP_GUARD, 0x0218, -1, 1000, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CAN_GO_TO_PLACES | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_CAN_HEAR_ALARMS | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRCMP150, 0x0004, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_CMP150) chr(SPAWNFLAG_00000200, 0x00, 0x007d, BODY_FEM_GUARD, HEAD_RANDOM, 0x0402, -1, -1, 100, 100, CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_04000000 | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_02000000, TEAM_ENEMY, SQUADRON_04, -1, 0, 0, 0, 0, 0) @@ -403,19 +403,19 @@ u32 props[] = { chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x1d, 0x01cc, BODY_FEM_GUARD, HEAD_RANDOM, AILIST_INIT_60HP_GUARD, -1, -1, 1000, 100, CHRFLAG0_00002000 | CHRFLAG0_00100000 | CHRFLAG0_CAN_HEARSPAWN | CHRFLAG0_NOHEAR | CHRFLAG0_CANLOSEGUN, CHRFLAG1_DOINGIDLEANIMATION, TEAM_ENEMY, SQUADRON_08, -1, 0, 0, 1, 0, 0) weapon(0x0100, MODEL_CHRSHOTGUN, 0x001d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_SHOTGUN) - chr(SPAWNFLAG_00000200, 0x08, 0x0028, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0408, -1, -1, 500, 100, CHRFLAG0_00000080 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x08, 0x0028, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0408, -1, -1, 500, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_CAN_RETREAT | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR, 0, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x0008, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM) - chr(SPAWNFLAG_00000200, 0x0d, 0x006f, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0409, -1, -1, 100, 100, CHRFLAG0_00000080 | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR, CHRFLAG1_00002000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x0d, 0x006f, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0409, -1, -1, 100, 100, CHRFLAG0_CHUCKNORRIS | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_SQUADALERTANYDIST | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR, CHRFLAG1_00002000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x000d, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM) chr(SPAWNFLAG_00000200 | SPAWNFLAG_FIXEDHEIGHT, 0x17, 0x01c6, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_40HP_GUARD, -1, -1, 2000, 100, CHRFLAG0_UNSURPRISABLE | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR, CHRFLAG1_DOINGIDLEANIMATION | CHRFLAG1_00002000, TEAM_ENEMY, SQUADRON_09, -1, 0, 0, 1, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x0017, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM) - chr(SPAWNFLAG_00000200, 0x06, 0x0011, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0407, 0x001d, -1, 1000, 9, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR, CHRFLAG1_00000080 | CHRFLAG1_00002000 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x06, 0x0011, BODY_DDSHOCK, HEAD_DDSHOCK, 0x0407, 0x001d, -1, 1000, 9, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_NOHEAR, CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_00002000 | CHRFLAG1_LONG_CAMSPY_OBSERVATION, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x0006, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM) - chr(SPAWNFLAG_00000200, 0x05, 0x01c0, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_40HP_GUARD, 0x001e, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_00000080 | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_00200000 | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR, CHRFLAG1_00002000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) + chr(SPAWNFLAG_00000200, 0x05, 0x01c0, BODY_DDSHOCK, HEAD_DDSHOCK, AILIST_INIT_40HP_GUARD, 0x001e, -1, 1000, 100, CHRFLAG0_CAN_EXAMINE_BODY | CHRFLAG0_CHUCKNORRIS | CHRFLAG0_CAN_RETREAT | CHRFLAG0_UNSURPRISABLE | CHRFLAG0_CAN_THROW_GRENADES | CHRFLAG0_00002000 | CHRFLAG0_00008000 | CHRFLAG0_00200000 | CHRFLAG0_08000000 | CHRFLAG0_NOHEAR, CHRFLAG1_00002000, TEAM_ENEMY, SQUADRON_01, -1, 0, 0, 0, 0, 0) weapon(0x0100, MODEL_CHRDY357, 0x0005, OBJFLAG_ASSIGNEDTOCHR, 0, 0, WEAPON_DY357MAGNUM) chr(SPAWNFLAG_ANTINONINTERACTABLE | SPAWNFLAG_BLUESIGHT, CHR_CASS, 0x0133, BODY_CASSANDRA, HEAD_CASSANDRA, AILIST_INIT_CASS, -1, -1, 1000, 100, CHRFLAG0_UNSURPRISABLE | CHRFLAG0_00004000 | CHRFLAG0_00008000 | CHRFLAG0_CANLOSEGUN, 0, TEAM_ENEMY, SQUADRON_03, -1, 0, 0, 0, 0, 0) diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 4db3aafd5..52704cd12 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -9044,397 +9044,138 @@ void chrPunchInflictDamage(struct chrdata *chr, s32 damage, s32 range, u8 revers weaponPlayWhooshSound(hand.weaponnum, chr->prop); } -u32 var8006829c = 0x0000027c; -u32 var800682a0 = 0x00000005; -u32 var800682a4 = 0x00140000; -u32 var800682a8 = 0x42700000; -u32 var800682ac = 0x0000027d; -u32 var800682b0 = 0x00000005; -u32 var800682b4 = 0x00140000; -u32 var800682b8 = 0x41f80000; -u32 var800682bc = 0x0000027e; -u32 var800682c0 = 0x00000005; -u32 var800682c4 = 0x00140000; -u32 var800682c8 = 0x42400000; -u32 var800682cc = 0x0000027f; -u32 var800682d0 = 0x00000005; -u32 var800682d4 = 0x00140000; -u32 var800682d8 = 0x428a0000; -u32 var800682dc = 0x00000212; -u32 var800682e0 = 0x00000005; -u32 var800682e4 = 0x00140000; -u32 var800682e8 = 0x42800000; -u32 var800682ec = 0x00000213; -u32 var800682f0 = 0x00000005; -u32 var800682f4 = 0x00140000; -u32 var800682f8 = 0x42500000; -u32 var800682fc = 0x00000214; -u32 var80068300 = 0x00000005; -u32 var80068304 = 0x00140000; -u32 var80068308 = 0x424c0000; -u32 var8006830c = 0x0000020e; -u32 var80068310 = 0x00000005; -u32 var80068314 = 0x00140000; -u32 var80068318 = 0x42540000; -u32 var8006831c = 0x0000020f; -u32 var80068320 = 0x00000005; -u32 var80068324 = 0x00140000; -u32 var80068328 = 0x42b20000; -u32 var8006832c = 0x00000210; -u32 var80068330 = 0x00000005; -u32 var80068334 = 0x00140000; -u32 var80068338 = 0x428e0000; -u32 var8006833c = 0x00000215; -u32 var80068340 = 0x00000005; -u32 var80068344 = 0x00140000; -u32 var80068348 = 0x42780000; -u32 var8006834c = 0x00000211; -u32 var80068350 = 0x00000005; -u32 var80068354 = 0x00140000; -u32 var80068358 = 0x42900000; -u32 var8006835c = 0x0000034c; -u32 var80068360 = 0x0000000f; -u32 var80068364 = 0x00190000; -u32 var80068368 = 0x42c80000; -u32 var8006836c = 0x0000034d; -u32 var80068370 = 0x0000000f; -u32 var80068374 = 0x00190000; -u32 var80068378 = 0xbf800000; -u32 var8006837c = 0x00000395; -u32 var80068380 = 0x0000000f; -u32 var80068384 = 0x00190000; -u32 var80068388 = 0xbf800000; -u32 var8006838c = 0x00000346; -u32 var80068390 = 0x0000000f; -u32 var80068394 = 0x00190000; -u32 var80068398 = 0xbf800000; -u32 var8006839c = 0x00000347; -u32 var800683a0 = 0x0000000f; -u32 var800683a4 = 0x00190000; -u32 var800683a8 = 0xbf800000; -u32 var800683ac = 0x0000034f; +struct punchanim { + s32 animnum; + u32 damage; + s16 hitframe; + f32 endframe; +}; -GLOBAL_ASM( -glabel chrTryPunchOrKick -.late_rodata -glabel var7f1a8ed8 -.word 0x3f59999a -.text -/* f03bbc8: 27bdffa8 */ addiu $sp,$sp,-88 -/* f03bbcc: afb00028 */ sw $s0,0x28($sp) -/* f03bbd0: 00808025 */ or $s0,$a0,$zero -/* f03bbd4: afbf002c */ sw $ra,0x2c($sp) -/* f03bbd8: afa5005c */ sw $a1,0x5c($sp) -/* f03bbdc: 10800003 */ beqz $a0,.L0f03bbec -/* f03bbe0: afa00054 */ sw $zero,0x54($sp) -/* f03bbe4: 10000002 */ b .L0f03bbf0 -/* f03bbe8: 908302fe */ lbu $v1,0x2fe($a0) -.L0f03bbec: -/* f03bbec: 00001825 */ or $v1,$zero,$zero -.L0f03bbf0: -/* f03bbf0: 0c004b70 */ jal random -/* f03bbf4: afa30050 */ sw $v1,0x50($sp) -/* f03bbf8: 304e00ff */ andi $t6,$v0,0xff -/* f03bbfc: 2dc10081 */ sltiu $at,$t6,0x81 -/* f03bc00: 14200003 */ bnez $at,.L0f03bc10 -/* f03bc04: 8fa30050 */ lw $v1,0x50($sp) -/* f03bc08: 10000002 */ b .L0f03bc14 -/* f03bc0c: 24080001 */ addiu $t0,$zero,0x1 -.L0f03bc10: -/* f03bc10: 00004025 */ or $t0,$zero,$zero -.L0f03bc14: -/* f03bc14: 14600013 */ bnez $v1,.L0f03bc64 -/* f03bc18: 24010001 */ addiu $at,$zero,0x1 -/* f03bc1c: 3c014120 */ lui $at,0x4120 -/* f03bc20: 44812000 */ mtc1 $at,$f4 -/* f03bc24: 3c0f8007 */ lui $t7,%hi(var8006829c) -/* f03bc28: 25ef829c */ addiu $t7,$t7,%lo(var8006829c) -/* f03bc2c: 24180078 */ addiu $t8,$zero,0x78 -/* f03bc30: 24190078 */ addiu $t9,$zero,0x78 -/* f03bc34: afaf0054 */ sw $t7,0x54($sp) -/* f03bc38: afb80044 */ sw $t8,0x44($sp) -/* f03bc3c: afb90040 */ sw $t9,0x40($sp) -/* f03bc40: afa80048 */ sw $t0,0x48($sp) -/* f03bc44: 0c004b70 */ jal random -/* f03bc48: e7a4003c */ swc1 $f4,0x3c($sp) -/* f03bc4c: 2401000b */ addiu $at,$zero,0xb -/* f03bc50: 0041001b */ divu $zero,$v0,$at -/* f03bc54: 00004810 */ mfhi $t1 -/* f03bc58: afa9004c */ sw $t1,0x4c($sp) -/* f03bc5c: 10000034 */ b .L0f03bd30 -/* f03bc60: 8fa80048 */ lw $t0,0x48($sp) -.L0f03bc64: -/* f03bc64: 14610032 */ bne $v1,$at,.L0f03bd30 -/* f03bc68: 3c0a8007 */ lui $t2,%hi(var8006835c) -/* f03bc6c: 93ad005f */ lbu $t5,0x5f($sp) -/* f03bc70: 3c0141a0 */ lui $at,0x41a0 -/* f03bc74: 44813000 */ mtc1 $at,$f6 -/* f03bc78: 254a835c */ addiu $t2,$t2,%lo(var8006835c) -/* f03bc7c: 240b00c8 */ addiu $t3,$zero,0xc8 -/* f03bc80: 240c00c8 */ addiu $t4,$zero,0xc8 -/* f03bc84: afaa0054 */ sw $t2,0x54($sp) -/* f03bc88: afab0044 */ sw $t3,0x44($sp) -/* f03bc8c: afac0040 */ sw $t4,0x40($sp) -/* f03bc90: 11a00004 */ beqz $t5,.L0f03bca4 -/* f03bc94: e7a6003c */ swc1 $f6,0x3c($sp) -/* f03bc98: 240e0005 */ addiu $t6,$zero,0x5 -/* f03bc9c: 10000024 */ b .L0f03bd30 -/* f03bca0: afae004c */ sw $t6,0x4c($sp) -.L0f03bca4: -/* f03bca4: 8e0f0170 */ lw $t7,0x170($s0) -/* f03bca8: 15e0000a */ bnez $t7,.L0f03bcd4 -/* f03bcac: 00000000 */ nop -/* f03bcb0: 8e180174 */ lw $t8,0x174($s0) -/* f03bcb4: 17000007 */ bnez $t8,.L0f03bcd4 -/* f03bcb8: 00000000 */ nop -/* f03bcbc: 0c004b70 */ jal random -/* f03bcc0: afa80048 */ sw $t0,0x48($sp) -/* f03bcc4: 30590001 */ andi $t9,$v0,0x1 -/* f03bcc8: afb9004c */ sw $t9,0x4c($sp) -/* f03bccc: 10000018 */ b .L0f03bd30 -/* f03bcd0: 8fa80048 */ lw $t0,0x48($sp) -.L0f03bcd4: -/* f03bcd4: 0c004b70 */ jal random -/* f03bcd8: afa80048 */ sw $t0,0x48($sp) -/* f03bcdc: 24010005 */ addiu $at,$zero,0x5 -/* f03bce0: 0041001b */ divu $zero,$v0,$at -/* f03bce4: 00001810 */ mfhi $v1 -/* f03bce8: 28610003 */ slti $at,$v1,0x3 -/* f03bcec: afa3004c */ sw $v1,0x4c($sp) -/* f03bcf0: 1420000f */ bnez $at,.L0f03bd30 -/* f03bcf4: 8fa80048 */ lw $t0,0x48($sp) -/* f03bcf8: 8e020170 */ lw $v0,0x170($s0) -/* f03bcfc: 10400004 */ beqz $v0,.L0f03bd10 -/* f03bd00: 00000000 */ nop -/* f03bd04: 8e090174 */ lw $t1,0x174($s0) -/* f03bd08: 5520000a */ bnezl $t1,.L0f03bd34 -/* f03bd0c: 02002025 */ or $a0,$s0,$zero -.L0f03bd10: -/* f03bd10: 50400004 */ beqzl $v0,.L0f03bd24 -/* f03bd14: 8e0a0174 */ lw $t2,0x174($s0) -/* f03bd18: 10000005 */ b .L0f03bd30 -/* f03bd1c: 00004025 */ or $t0,$zero,$zero -/* f03bd20: 8e0a0174 */ lw $t2,0x174($s0) -.L0f03bd24: -/* f03bd24: 51400003 */ beqzl $t2,.L0f03bd34 -/* f03bd28: 02002025 */ or $a0,$s0,$zero -/* f03bd2c: 24080001 */ addiu $t0,$zero,0x1 -.L0f03bd30: -/* f03bd30: 02002025 */ or $a0,$s0,$zero -.L0f03bd34: -/* f03bd34: 24050080 */ addiu $a1,$zero,0x80 -/* f03bd38: 24060001 */ addiu $a2,$zero,0x1 -/* f03bd3c: 0fc12790 */ jal chrHasFlag -/* f03bd40: afa80048 */ sw $t0,0x48($sp) -/* f03bd44: 10400031 */ beqz $v0,.L0f03be0c -/* f03bd48: 8fa80048 */ lw $t0,0x48($sp) -/* f03bd4c: 02002025 */ or $a0,$s0,$zero -/* f03bd50: 24050080 */ addiu $a1,$zero,0x80 -/* f03bd54: 00003025 */ or $a2,$zero,$zero -/* f03bd58: 0fc12790 */ jal chrHasFlag -/* f03bd5c: afa80048 */ sw $t0,0x48($sp) -/* f03bd60: 10400013 */ beqz $v0,.L0f03bdb0 -/* f03bd64: 8fa80048 */ lw $t0,0x48($sp) -/* f03bd68: 8fac004c */ lw $t4,0x4c($sp) -/* f03bd6c: 8fab0054 */ lw $t3,0x54($sp) -/* f03bd70: 3c013fc0 */ lui $at,0x3fc0 -/* f03bd74: 000c6900 */ sll $t5,$t4,0x4 -/* f03bd78: 016d1821 */ addu $v1,$t3,$t5 -/* f03bd7c: 8c650000 */ lw $a1,0x0($v1) -/* f03bd80: 8c67000c */ lw $a3,0xc($v1) -/* f03bd84: 44814000 */ mtc1 $at,$f8 -/* f03bd88: 240e0010 */ addiu $t6,$zero,0x10 -/* f03bd8c: afae0014 */ sw $t6,0x14($sp) -/* f03bd90: afa30030 */ sw $v1,0x30($sp) -/* f03bd94: afa80010 */ sw $t0,0x10($sp) -/* f03bd98: 02002025 */ or $a0,$s0,$zero -/* f03bd9c: 8fa6003c */ lw $a2,0x3c($sp) -/* f03bda0: 0fc0ebd1 */ jal chrTryStartAnim -/* f03bda4: e7a80018 */ swc1 $f8,0x18($sp) -/* f03bda8: 10000016 */ b .L0f03be04 -/* f03bdac: 8fa30030 */ lw $v1,0x30($sp) -.L0f03bdb0: -/* f03bdb0: 8fb8004c */ lw $t8,0x4c($sp) -/* f03bdb4: 8faf0054 */ lw $t7,0x54($sp) -/* f03bdb8: 3c0141c8 */ lui $at,0x41c8 -/* f03bdbc: 0018c900 */ sll $t9,$t8,0x4 -/* f03bdc0: 01f91821 */ addu $v1,$t7,$t9 -/* f03bdc4: c46a000c */ lwc1 $f10,0xc($v1) -/* f03bdc8: 44818000 */ mtc1 $at,$f16 -/* f03bdcc: 3c013f00 */ lui $at,0x3f00 -/* f03bdd0: 8c650000 */ lw $a1,0x0($v1) -/* f03bdd4: 46105481 */ sub.s $f18,$f10,$f16 -/* f03bdd8: 44812000 */ mtc1 $at,$f4 -/* f03bddc: 24090010 */ addiu $t1,$zero,0x10 -/* f03bde0: afa90014 */ sw $t1,0x14($sp) -/* f03bde4: 44079000 */ mfc1 $a3,$f18 -/* f03bde8: afa30030 */ sw $v1,0x30($sp) -/* f03bdec: afa80010 */ sw $t0,0x10($sp) -/* f03bdf0: 02002025 */ or $a0,$s0,$zero -/* f03bdf4: 8fa6003c */ lw $a2,0x3c($sp) -/* f03bdf8: 0fc0ebd1 */ jal chrTryStartAnim -/* f03bdfc: e7a40018 */ swc1 $f4,0x18($sp) -/* f03be00: 8fa30030 */ lw $v1,0x30($sp) -.L0f03be04: -/* f03be04: 10000013 */ b .L0f03be54 -/* f03be08: a200035e */ sb $zero,0x35e($s0) -.L0f03be0c: -/* f03be0c: 8fac004c */ lw $t4,0x4c($sp) -/* f03be10: 8faa0054 */ lw $t2,0x54($sp) -/* f03be14: 3c017f1b */ lui $at,%hi(var7f1a8ed8) -/* f03be18: 000c5900 */ sll $t3,$t4,0x4 -/* f03be1c: 014b1821 */ addu $v1,$t2,$t3 -/* f03be20: 8c650000 */ lw $a1,0x0($v1) -/* f03be24: 8c67000c */ lw $a3,0xc($v1) -/* f03be28: c4268ed8 */ lwc1 $f6,%lo(var7f1a8ed8)($at) -/* f03be2c: 240d0010 */ addiu $t5,$zero,0x10 -/* f03be30: afad0014 */ sw $t5,0x14($sp) -/* f03be34: afa30030 */ sw $v1,0x30($sp) -/* f03be38: afa80010 */ sw $t0,0x10($sp) -/* f03be3c: 02002025 */ or $a0,$s0,$zero -/* f03be40: 8fa6003c */ lw $a2,0x3c($sp) -/* f03be44: 0fc0ebd1 */ jal chrTryStartAnim -/* f03be48: e7a60018 */ swc1 $f6,0x18($sp) -/* f03be4c: 8fa30030 */ lw $v1,0x30($sp) -/* f03be50: a200035e */ sb $zero,0x35e($s0) -.L0f03be54: -/* f03be54: 10400073 */ beqz $v0,.L0f03c024 -/* f03be58: 02002025 */ or $a0,$s0,$zero -/* f03be5c: 0fc0a221 */ jal chrGetTargetProp -/* f03be60: afa30030 */ sw $v1,0x30($sp) -/* f03be64: 90440000 */ lbu $a0,0x0($v0) -/* f03be68: 24010005 */ addiu $at,$zero,0x5 -/* f03be6c: 8fa30030 */ lw $v1,0x30($sp) -/* f03be70: 10810004 */ beq $a0,$at,.L0f03be84 -/* f03be74: 24020001 */ addiu $v0,$zero,0x1 -/* f03be78: 24010006 */ addiu $at,$zero,0x6 -/* f03be7c: 14810004 */ bne $a0,$at,.L0f03be90 -/* f03be80: 8fb80044 */ lw $t8,0x44($sp) -.L0f03be84: -/* f03be84: 8fae0040 */ lw $t6,0x40($sp) -/* f03be88: 10000002 */ b .L0f03be94 -/* f03be8c: a60e0046 */ sh $t6,0x46($s0) -.L0f03be90: -/* f03be90: a6180046 */ sh $t8,0x46($s0) -.L0f03be94: -/* f03be94: a2020040 */ sb $v0,0x40($s0) -/* f03be98: 846f0008 */ lh $t7,0x8($v1) -/* f03be9c: 3c19800a */ lui $t9,%hi(g_Vars+0x318) -/* f03bea0: 02002025 */ or $a0,$s0,$zero -/* f03bea4: a60f0042 */ sh $t7,0x42($s0) -/* f03bea8: 8f39a2d8 */ lw $t9,%lo(g_Vars+0x318)($t9) -/* f03beac: 24050080 */ addiu $a1,$zero,0x80 -/* f03beb0: 24060001 */ addiu $a2,$zero,0x1 -/* f03beb4: 13200003 */ beqz $t9,.L0f03bec4 -/* f03beb8: 00000000 */ nop -/* f03bebc: 10000050 */ b .L0f03c000 -/* f03bec0: a6020044 */ sh $v0,0x44($s0) -.L0f03bec4: -/* f03bec4: 0fc12790 */ jal chrHasFlag -/* f03bec8: afa30030 */ sw $v1,0x30($sp) -/* f03becc: 1040003d */ beqz $v0,.L0f03bfc4 -/* f03bed0: 8fa30030 */ lw $v1,0x30($sp) -/* f03bed4: 02002025 */ or $a0,$s0,$zero -/* f03bed8: 24050080 */ addiu $a1,$zero,0x80 -/* f03bedc: 00003025 */ or $a2,$zero,$zero -/* f03bee0: 0fc12790 */ jal chrHasFlag -/* f03bee4: afa30030 */ sw $v1,0x30($sp) -/* f03bee8: 10400036 */ beqz $v0,.L0f03bfc4 -/* f03beec: 8fa30030 */ lw $v1,0x30($sp) -/* f03bef0: 94690006 */ lhu $t1,0x6($v1) -/* f03bef4: 3c014f80 */ lui $at,0x4f80 -/* f03bef8: 44894000 */ mtc1 $t1,$f8 -/* f03befc: 05210004 */ bgez $t1,.L0f03bf10 -/* f03bf00: 468042a0 */ cvt.s.w $f10,$f8 -/* f03bf04: 44818000 */ mtc1 $at,$f16 -/* f03bf08: 00000000 */ nop -/* f03bf0c: 46105280 */ add.s $f10,$f10,$f16 -.L0f03bf10: -/* f03bf10: 920c0112 */ lbu $t4,0x112($s0) -/* f03bf14: 3c014f80 */ lui $at,0x4f80 -/* f03bf18: 448c9000 */ mtc1 $t4,$f18 -/* f03bf1c: 05810004 */ bgez $t4,.L0f03bf30 -/* f03bf20: 46809120 */ cvt.s.w $f4,$f18 -/* f03bf24: 44813000 */ mtc1 $at,$f6 -/* f03bf28: 00000000 */ nop -/* f03bf2c: 46062100 */ add.s $f4,$f4,$f6 -.L0f03bf30: -/* f03bf30: 46045002 */ mul.s $f0,$f10,$f4 -/* f03bf34: 240b0001 */ addiu $t3,$zero,0x1 -/* f03bf38: 3c014f00 */ lui $at,0x4f00 -/* f03bf3c: 46000200 */ add.s $f8,$f0,$f0 -/* f03bf40: 444af800 */ cfc1 $t2,$31 -/* f03bf44: 44cbf800 */ ctc1 $t3,$31 -/* f03bf48: 00000000 */ nop -/* f03bf4c: 46004424 */ cvt.w.s $f16,$f8 -/* f03bf50: 444bf800 */ cfc1 $t3,$31 -/* f03bf54: 00000000 */ nop -/* f03bf58: 316b0078 */ andi $t3,$t3,0x78 -/* f03bf5c: 51600013 */ beqzl $t3,.L0f03bfac -/* f03bf60: 440b8000 */ mfc1 $t3,$f16 -/* f03bf64: 44818000 */ mtc1 $at,$f16 -/* f03bf68: 240b0001 */ addiu $t3,$zero,0x1 -/* f03bf6c: 46104401 */ sub.s $f16,$f8,$f16 -/* f03bf70: 44cbf800 */ ctc1 $t3,$31 -/* f03bf74: 00000000 */ nop -/* f03bf78: 46008424 */ cvt.w.s $f16,$f16 -/* f03bf7c: 444bf800 */ cfc1 $t3,$31 -/* f03bf80: 00000000 */ nop -/* f03bf84: 316b0078 */ andi $t3,$t3,0x78 -/* f03bf88: 15600005 */ bnez $t3,.L0f03bfa0 -/* f03bf8c: 00000000 */ nop -/* f03bf90: 440b8000 */ mfc1 $t3,$f16 -/* f03bf94: 3c018000 */ lui $at,0x8000 -/* f03bf98: 10000007 */ b .L0f03bfb8 -/* f03bf9c: 01615825 */ or $t3,$t3,$at -.L0f03bfa0: -/* f03bfa0: 10000005 */ b .L0f03bfb8 -/* f03bfa4: 240bffff */ addiu $t3,$zero,-1 -/* f03bfa8: 440b8000 */ mfc1 $t3,$f16 -.L0f03bfac: -/* f03bfac: 00000000 */ nop -/* f03bfb0: 0560fffb */ bltz $t3,.L0f03bfa0 -/* f03bfb4: 00000000 */ nop -.L0f03bfb8: -/* f03bfb8: 44caf800 */ ctc1 $t2,$31 -/* f03bfbc: 10000010 */ b .L0f03c000 -/* f03bfc0: a60b0044 */ sh $t3,0x44($s0) -.L0f03bfc4: -/* f03bfc4: 02002025 */ or $a0,$s0,$zero -/* f03bfc8: 3c058000 */ lui $a1,0x8000 -/* f03bfcc: 24060001 */ addiu $a2,$zero,0x1 -/* f03bfd0: 0fc12790 */ jal chrHasFlag -/* f03bfd4: afa30030 */ sw $v1,0x30($sp) -/* f03bfd8: 10400007 */ beqz $v0,.L0f03bff8 -/* f03bfdc: 8fa30030 */ lw $v1,0x30($sp) -/* f03bfe0: 946d0006 */ lhu $t5,0x6($v1) -/* f03bfe4: 000d7080 */ sll $t6,$t5,0x2 -/* f03bfe8: 01cd7023 */ subu $t6,$t6,$t5 -/* f03bfec: 000e7040 */ sll $t6,$t6,0x1 -/* f03bff0: 10000003 */ b .L0f03c000 -/* f03bff4: a60e0044 */ sh $t6,0x44($s0) -.L0f03bff8: -/* f03bff8: 8c780004 */ lw $t8,0x4($v1) -/* f03bffc: a6180044 */ sh $t8,0x44($s0) -.L0f03c000: -/* f03c000: 8e190018 */ lw $t9,0x18($s0) -/* f03c004: 3c017fff */ lui $at,0x7fff -/* f03c008: 93af005f */ lbu $t7,0x5f($sp) -/* f03c00c: 3421ffff */ ori $at,$at,0xffff -/* f03c010: 03214824 */ and $t1,$t9,$at -/* f03c014: ae090018 */ sw $t1,0x18($s0) -/* f03c018: 24020001 */ addiu $v0,$zero,0x1 -/* f03c01c: 10000002 */ b .L0f03c028 -/* f03c020: a20f0041 */ sb $t7,0x41($s0) -.L0f03c024: -/* f03c024: 00001025 */ or $v0,$zero,$zero -.L0f03c028: -/* f03c028: 8fbf002c */ lw $ra,0x2c($sp) -/* f03c02c: 8fb00028 */ lw $s0,0x28($sp) -/* f03c030: 27bd0058 */ addiu $sp,$sp,0x58 -/* f03c034: 03e00008 */ jr $ra -/* f03c038: 00000000 */ nop -); +struct punchanim g_HumanPunchAnims[] = { + { 0x027c, 5, 20, 60 }, + { 0x027d, 5, 20, 31 }, + { 0x027e, 5, 20, 48 }, + { 0x027f, 5, 20, 69 }, + { 0x0212, 5, 20, 64 }, + { 0x0213, 5, 20, 52 }, + { 0x0214, 5, 20, 51 }, + { 0x020e, 5, 20, 53 }, + { 0x020f, 5, 20, 89 }, + { 0x0210, 5, 20, 71 }, + { 0x0215, 5, 20, 62 }, + { 0x0211, 5, 20, 72 }, +}; + +struct punchanim g_SkedarPunchAnims[] = { + { 0x034c, 15, 25, 100 }, + { 0x034d, 15, 25, -1 }, + { 0x0395, 15, 25, -1 }, + { 0x0346, 15, 25, -1 }, + { 0x0347, 15, 25, -1 }, + { 0x034f, 15, 25, -1 }, +}; + +/** + * Make the chr try to punch or kick. + * + * The function is only ever called with reverse = 0. If non-zero, it would + * cause Skedar to kick behind them. + * + * Note that the final human anim can't be used because the modulus value is too + * short by one. + */ +bool chrTryPunch(struct chrdata *chr, u8 reverse) +{ + struct punchanim *anims = NULL; + s32 race = CHRRACE(chr); + s32 animindex; + u32 chranimflags = (random() % 256 > 128) ? CHRANIMFLAG_FLIP : 0; + s32 chrhitradius; + s32 playerhitradius; + f32 startframe; + bool ok; + + if (race == RACE_HUMAN) { + anims = g_HumanPunchAnims; + startframe = 10; + chrhitradius = 120; + playerhitradius = 120; + animindex = random() % 11; + } else if (race == RACE_SKEDAR) { + anims = g_SkedarPunchAnims; + chrhitradius = 200; + playerhitradius = 200; + startframe = 20; + + if (reverse) { + // Skedar kick behind + animindex = 5; + } else if (!chr->weapons_held[HAND_RIGHT] && !chr->weapons_held[HAND_LEFT]) { + // Unarmed: Only use indexes 0 or 1 + animindex = random() % 2; + } else { + // Allow indexes 0-4, but if 3 or 4 then flip the anim based on + // which hand is holding the gun + animindex = random() % 5; + + if (animindex >= 3) { + if (!chr->weapons_held[HAND_RIGHT] || !chr->weapons_held[HAND_LEFT]) { + if (chr->weapons_held[HAND_RIGHT]) { + chranimflags = 0; + } else if (chr->weapons_held[HAND_LEFT]) { + chranimflags = CHRANIMFLAG_FLIP; + } + } + } + } + } + + if (chrHasFlag(chr, CHRFLAG1_ADJUSTPUNCHSPEED, BANK_1)) { + if (chrHasFlag(chr, CHRFLAG0_CHUCKNORRIS, BANK_0)) { + // Fast punch + ok = chrTryStartAnim(chr, anims[animindex].animnum, startframe, anims[animindex].endframe, chranimflags, 16, 1.5f); + } else { + // Slow punch + ok = chrTryStartAnim(chr, anims[animindex].animnum, startframe, anims[animindex].endframe - 25, chranimflags, 16, 0.5f); + } + + chr->dodgerating = 0; + } else { + // Normal punch + ok = chrTryStartAnim(chr, anims[animindex].animnum, startframe, anims[animindex].endframe, chranimflags, 16, 0.85f); + chr->dodgerating = 0; + } + + if (ok) { + struct prop *targetprop = chrGetTargetProp(chr); + + if (targetprop->type == PROPTYPE_EYESPY || targetprop->type == PROPTYPE_PLAYER) { + chr->act_anim.hitradius = playerhitradius; + } else { + chr->act_anim.hitradius = chrhitradius; + } + + chr->act_anim.ishitanim = true; + chr->act_anim.hitframe = anims[animindex].hitframe; + + if (g_Vars.normmplayerisrunning) { + chr->act_anim.hitdamage = 1; + } else if (chrHasFlag(chr, CHRFLAG1_ADJUSTPUNCHSPEED, BANK_1) && chrHasFlag(chr, CHRFLAG0_CHUCKNORRIS, BANK_0)) { + chr->act_anim.hitdamage = (u16)anims[animindex].damage * (f32)chr->morale + (u16)anims[animindex].damage * (f32)chr->morale; + } else if (chrHasFlag(chr, CHRFLAG1_PUNCHHARDER, BANK_1)) { + chr->act_anim.hitdamage = (u16)anims[animindex].damage * 6; + } else { + chr->act_anim.hitdamage = anims[animindex].damage; + } + + chr->act_anim.reverse = reverse; + chr->chrflags &= ~CHRCFLAG_INJUREDTARGET; + + return true; + } + + return false; +} GLOBAL_ASM( glabel func0f03c03c @@ -10076,10 +9817,6 @@ void chrTickAnim(struct chrdata *chr) } } -u32 var800683b0 = 0x0000000f; -u32 var800683b4 = 0x00190000; -u32 var800683b8 = 0xbf800000; - void chrTickSurrender(struct chrdata *chr) { if (chr->hidden & CHRHFLAG_NEEDANIM) { @@ -23879,7 +23616,7 @@ void chrTickSkJump(struct chrdata *chr) } if (chr->act_skjump.hit == false && chrGetDistanceToTarget(chr) < 150.0f) { - chrPunchInflictDamage(chr, 3, 0x96, 0); + chrPunchInflictDamage(chr, 3, 150, false); chr->act_skjump.hit = true; } @@ -25796,7 +25533,7 @@ bool chrIsVerticalAngleToTargetWithin(struct chrdata *chr, u8 fov360) return false; } -f32 func0f048fcc(struct chrdata *chr, u8 arg1) +f32 func0f048fcc(struct chrdata *chr, u8 reverse) { f32 result; @@ -25807,7 +25544,7 @@ f32 func0f048fcc(struct chrdata *chr, u8 arg1) f32 zdiff = chrprop->pos.z - targetprop->pos.z; f32 angle1 = atan2f(-xdiff, -zdiff); - f32 angle2 = chrGetInverseTheta(chr) + M_PI * (s32)arg1; + f32 angle2 = chrGetInverseTheta(chr) + M_PI * (s32)reverse; result = angle1 - angle2; @@ -25818,9 +25555,9 @@ f32 func0f048fcc(struct chrdata *chr, u8 arg1) return result; } -bool chrIsTargetInFov(struct chrdata *chr, u8 arg1, u8 arg2) +bool chrIsTargetInFov(struct chrdata *chr, u8 arg1, u8 reverse) { - f32 angle = func0f048fcc(chr, arg2); + f32 angle = func0f048fcc(chr, reverse); if ((angle < arg1 * 0.024539785459638f && angle < M_PI) || (angle > M_BADTAU - arg1 * 0.024539785459638f && angle > M_PI)) { diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index b881a2e64..fdff94b12 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -11017,7 +11017,7 @@ bool aiPunchOrKick(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - if (g_Vars.chrdata && chrTryPunchOrKick(g_Vars.chrdata, cmd[2])) { + if (g_Vars.chrdata && chrTryPunch(g_Vars.chrdata, cmd[2])) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]); } else { g_Vars.aioffset += 4; diff --git a/src/game/data/ailists.c b/src/game/data/ailists.c index e71927b2f..35993b15a 100644 --- a/src/game/data/ailists.c +++ b/src/game/data/ailists.c @@ -1426,7 +1426,7 @@ u8 func0007_alerted[] = { goto_next(0x5b) label(0x16) - if_self_flag_bankx_eq(CHRFLAG0_00000080, TRUE, BANK_0, /*goto*/ 0x13) + if_self_flag_bankx_eq(CHRFLAG0_CHUCKNORRIS, TRUE, BANK_0, /*goto*/ 0x13) call_rng if_rand_gt(100, /*goto*/ 0x13) if_within_targets_fovx_by_angle(30, /*goto*/ 0x16) @@ -5130,7 +5130,7 @@ u8 func0025_pointless[] = { u8 func0026_init_psychosis[] = { set_shotlist(GAILIST_INIT_PSYCHOSIS) set_chr_team(CHR_SELF, TEAM_NONCOMBAT) - set_self_flag_bankx(CHRFLAG1_80000000, BANK_1) + set_self_flag_bankx(CHRFLAG1_PUNCHHARDER, BANK_1) set_self_chrflag(CHRCFLAG_00040000) set_self_chrflag(CHRCFLAG_PUSHABLE) set_self_flag_bankx(CHRFLAG1_00100000, BANK_1) diff --git a/src/game/game_02cde0.c b/src/game/game_02cde0.c index 0b1209736..d7fcd7f0f 100644 --- a/src/game/game_02cde0.c +++ b/src/game/game_02cde0.c @@ -860,7 +860,8 @@ void chrUnpack(s32 stagenum, struct packedchr *packed, s32 cmdindex) } if (random() % 5 == 0) { - chr->flags2 |= CHRFLAG1_00000080; + // Make chr punch slower + chr->flags2 |= CHRFLAG1_ADJUSTPUNCHSPEED; } if (CHRRACE(chr) == RACE_SKEDAR) { diff --git a/src/game/game_0b69d0.c b/src/game/game_0b69d0.c index 43e7cdab2..2b8d75024 100644 --- a/src/game/game_0b69d0.c +++ b/src/game/game_0b69d0.c @@ -12997,8 +12997,8 @@ glabel var7f1ad6ac // // if (prop) { // struct chrdata *chr = prop->chr; -// chr->flags |= CHRFLAG0_00002000 | CHRFLAG0_00000080; -// chr->flags2 |= CHRFLAG1_40000000 | CHRFLAG1_00200000 | CHRFLAG1_00100000 | CHRFLAG1_00000080 | CHRFLAG1_00000001; +// chr->flags |= CHRFLAG0_00002000 | CHRFLAG0_CHUCKNORRIS; +// chr->flags2 |= CHRFLAG1_40000000 | CHRFLAG1_00200000 | CHRFLAG1_00100000 | CHRFLAG1_ADJUSTPUNCHSPEED | CHRFLAG1_00000001; // chr->team = TEAM_ALLY; // chr->squadron = SQUADRON_01; // chr->teamscandist = 100; @@ -13044,7 +13044,7 @@ glabel var7f1ad6ac // if (prop) { // struct chrdata *chr = prop->chr; // chr->flags |= CHRFLAG0_00002000; -// chr->flags2 |= CHRFLAG1_80000000 | CHRFLAG1_00200000 | CHRFLAG1_00100000; +// chr->flags2 |= CHRFLAG1_PUNCHHARDER | CHRFLAG1_00200000 | CHRFLAG1_00100000; // chr->team = TEAM_ALLY; // chr->squadron = SQUADRON_01; // chr->hidden |= CHRHFLAG_PSYCHOSISED; @@ -13141,7 +13141,7 @@ glabel var7f1ad6ac // if (prop) { // struct chrdata *chr = prop->chr; // chr->flags |= CHRFLAG0_00002000; -// chr->flags2 |= CHRFLAG1_80000000 | CHRFLAG1_40000000 | CHRFLAG1_00200000 | CHRFLAG1_00100000; +// chr->flags2 |= CHRFLAG1_PUNCHHARDER | CHRFLAG1_40000000 | CHRFLAG1_00200000 | CHRFLAG1_00100000; // chr->team = TEAM_ALLY; // chr->squadron = SQUADRON_01; // chr->hidden |= CHRHFLAG_PSYCHOSISED; diff --git a/src/include/constants.h b/src/include/constants.h index 03e66188c..159aeed7b 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -447,7 +447,7 @@ #define CHRFLAG0_00000010 0x00000010 // Globals, Skedar Ruins #define CHRFLAG0_SAID_INJURY_QUIP 0x00000020 #define CHRFLAG0_00000040 0x00000040 // Globals - related to cover? -#define CHRFLAG0_00000080 0x00000080 // Globals, Chicago, Air Base +#define CHRFLAG0_CHUCKNORRIS 0x00000080 // Makes punch animation faster, and damage is multiplied by the chr's morale then doubled. Must also have CHRFLAG1_ADJUSTPUNCHSPEED #define CHRFLAG0_CAN_BACKOFF 0x00000100 #define CHRFLAG0_CAN_RETREAT 0x00000200 #define CHRFLAG0_UNSURPRISABLE 0x00000400 // may also be "can uncover disguise" @@ -481,7 +481,7 @@ #define CHRFLAG1_00000010 0x00000010 // Globals - If set, avoids try_attack_amount #define CHRFLAG1_00000020 0x00000020 // Globals, AF1, Defense - related to reload animation #define CHRFLAG1_CAN_SNIPE 0x00000040 -#define CHRFLAG1_00000080 0x00000080 // Not used in scripts +#define CHRFLAG1_ADJUSTPUNCHSPEED 0x00000080 // Makes chr punch slower, unless chr also has CHRFLAG0_CHUCKNORRIS #define CHRFLAG1_DOINGIDLEANIMATION 0x00000100 #define CHRFLAG1_WARNED 0x00000200 #define CHRFLAG1_00000400 0x00000400 // Globals @@ -505,7 +505,7 @@ #define CHRFLAG1_10000000 0x10000000 // Some kind of param for searching #define CHRFLAG1_CAN_DRAW_PISTOL 0x20000000 #define CHRFLAG1_40000000 0x40000000 // Globals -#define CHRFLAG1_80000000 0x80000000 // Globals +#define CHRFLAG1_PUNCHHARDER 0x80000000 // Punches deal 6x the usual damage. Must not have CHRFLAG0_CHUCKNORRIS // chr->hidden #define CHRHFLAG_00000001 0x00000001 // Set when chr drops weapon diff --git a/src/include/game/chr/chraction.h b/src/include/game/chr/chraction.h index 4611d955c..2ac2ce059 100644 --- a/src/include/game/chr/chraction.h +++ b/src/include/game/chr/chraction.h @@ -117,7 +117,7 @@ bool chrTryRunFromTarget(struct chrdata *chr); u32 func0f03b1e0(struct chrdata *chr); bool chrDropItem(struct chrdata *chr, u32 modelnum, u32 weaponnum); void chrPunchInflictDamage(struct chrdata *chr, s32 damage, s32 range, u8 reverse); -bool chrTryPunchOrKick(struct chrdata *chr, bool reverse); +bool chrTryPunch(struct chrdata *chr, u8 reverse); struct eyespy *chrToEyespy(struct chrdata *chr); void chrTickStand(struct chrdata *chr); void chrTickAnim(struct chrdata *chr); @@ -186,8 +186,8 @@ f32 chrGetAngleFromTargetsFov(struct chrdata *chr); f32 chrGetVerticalAngleToTarget(struct chrdata *chr); bool chrIsInTargetsFovX(struct chrdata *chr, u8 fov360); bool chrIsVerticalAngleToTargetWithin(struct chrdata *chr, u8 arg1); -f32 func0f048fcc(struct chrdata *chr, u8 arg1); -bool chrIsTargetInFov(struct chrdata *chr, u8 arg1, u8 arg2); +f32 func0f048fcc(struct chrdata *chr, u8 reverse); +bool chrIsTargetInFov(struct chrdata *chr, u8 arg1, u8 reverse); bool func0f04911c(struct chrdata *chr, struct coord *pos, u8 arg2); f32 chrGetSameFloorDistanceToPad(struct chrdata *chr, s32 pad_id); void chrsClearRefsToPlayer(s32 playernum); @@ -264,7 +264,7 @@ bool chrTrySurprisedOneHand(struct chrdata *chr); bool chrTrySurprisedSurrender(struct chrdata *chr); bool chrTrySurprisedLookAround(struct chrdata *chr); bool chrTryKneel(struct chrdata *chr); -bool chrTryStartAnim(struct chrdata *chr, s32 animfnum, f32 startframe, f32 endframe, u8 chranimflags, s32 merge, f32 speed); +bool chrTryStartAnim(struct chrdata *chr, s32 animnum, f32 startframe, f32 endframe, u8 chranimflags, s32 merge, f32 speed); bool chrTryStartAlarm(struct chrdata *chr, s32 pad_id); s32 chrConsiderGrenadeThrow(struct chrdata *chr, u32 attackflags, u32 entityid); void chrTickKneel(struct chrdata *chr);