2021 lines
72 KiB
ArmAsm
2021 lines
72 KiB
ArmAsm
#
|
|
# Crash Site
|
|
#
|
|
|
|
.set HEADERLEN, 0x20
|
|
.include "asm/include/setup.inc"
|
|
|
|
// Characters
|
|
.set CHR_ELVIS, 0x00
|
|
.set CHR_TRENT, 0x02
|
|
.set CHR_MRBLONDE, 0x03
|
|
.set CHR_SKEDAR, 0x04
|
|
.set CHR_PRESIDENT, 0x05
|
|
.set CHR_PRESIDENT_OUTRO, 0x06
|
|
.set CHR_PRES_CLONE, 0x08
|
|
.set CHR_ROBOT1, 0x26
|
|
.set CHR_ROBOT2, 0x27
|
|
.set CHR_ROBOT3, 0x28
|
|
.set CHR_ROBOT4, 0x29
|
|
.set CHR_ELVIS_OUTRO, 0x38
|
|
|
|
// Objects
|
|
.set OBJ_CRATE, 0x00
|
|
.set OBJ_ESCAPEPOD, 0x01
|
|
.set OBJ_MEDICALSCANNER, 0x02
|
|
.set OBJ_SKEDAR_SHUTTLE, 0x03
|
|
.set OBJ_PROXYMINE, 0x08
|
|
.set OBJ_HOVERBIKE, 0x09
|
|
|
|
// Stage flags
|
|
.set STAGEFLAG_BEACON_ACTIVATED, 0x00000100
|
|
.set STAGEFLAG_ESCAPEPOD_DESTROYED, 0x00000200
|
|
.set STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED, 0x00000400
|
|
.set STAGEFLAG_PRESIDENT_DEAD, 0x00000800
|
|
.set STAGEFLAG_PRESIDENT_RESCUED, 0x00001000
|
|
.set STAGEFLAG_CLONE_DEAD, 0x00002000
|
|
.set STAGEFLAG_TRIGGER_PRESIDENT_RUNNING, 0x00004000
|
|
.set STAGEFLAG_TRENT_RUNNING, 0x00008000
|
|
.set STAGEFLAG_ELVIS_GAVE_PROXYMINE, 0x00010000
|
|
.set STAGEFLAG_OUTRO_STARTED, 0x00020000
|
|
|
|
// Functions
|
|
.set FUNC_OUTRO, 0x0402
|
|
.set FUNC_INIT_ELVIS, 0x0403
|
|
.set FUNC_ELVIS, 0x0404
|
|
.set FUNC_INIT_STRIPES, 0x0406
|
|
.set FUNC_INIT_BLONDE, 0x0407
|
|
.set FUNC_SPAWNER, 0x0414
|
|
.set FUNC_SPAWNED_GUARD, 0x0416
|
|
.set FUNC_INIT_ROBOT, 0x0417
|
|
.set FUNC_ROBOT, 0x0418
|
|
.set FUNC_INIT_PRESIDENT, 0x041b
|
|
.set FUNC_PRESIDENT_WAITING, 0x041c
|
|
.set FUNC_PRESIDENT_RUNNING, 0x041d
|
|
.set FUNC_TRENT_WAITING, 0x041e
|
|
.set FUNC_TRENT_SHOOTING, 0x041f
|
|
.set FUNC_TRENT_RUNNING, 0x0420
|
|
.set FUNC_STARTING_AREA_GUARD, 0x0421
|
|
.set FUNC_HIDE, 0x0422
|
|
|
|
props:
|
|
briefing 0, 0x0a01
|
|
briefing 1, 0x0a00
|
|
briefing 2, 0x0a02
|
|
briefing 3, 0x0a03
|
|
|
|
beginobjective 0, 0x0a05, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retrieve Presidential medical scanner"
|
|
require_object_collected OBJ_MEDICALSCANNER
|
|
endobjective
|
|
|
|
beginobjective 1, 0x0a06, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Activate distress beacon"
|
|
complete_flags STAGEFLAG_BEACON_ACTIVATED
|
|
fail_flags STAGEFLAG_ESCAPEPOD_DESTROYED
|
|
endobjective
|
|
|
|
beginobjective 2, 0x0a07, DIFFBIT_PA | DIFFBIT_PD // "Shut down enemy jamming device"
|
|
complete_flags STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED
|
|
endobjective
|
|
|
|
beginobjective 3, 0x0a08, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Retire Presidential clone"
|
|
complete_flags STAGEFLAG_CLONE_DEAD
|
|
endobjective
|
|
|
|
beginobjective 4, 0x0a09, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Locate and rescue President"
|
|
complete_flags STAGEFLAG_PRESIDENT_RESCUED
|
|
fail_flags STAGEFLAG_PRESIDENT_DEAD
|
|
endobjective
|
|
|
|
tag 0x09, 1
|
|
hoverbike 0x0100, MODEL_HOVBIKE, 0x0000, 0x05120101, 0x00304300, 0x02000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x01010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
|
chr 0x00010400, 0x00, 0x0106, BODY_THEKING, HEAD_ELVIS, FUNC_INIT_ELVIS, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0000, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000
|
|
chr 0x00010400, 0x38, 0x011f, BODY_THEKING, HEAD_ELVIS, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x80, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0038, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000
|
|
chr 0x00010400, 0x06, 0x0110, BODY_PRESIDENT, HEAD_PRESIDENT, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x80, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000400, 0x02, 0x010e, BODY_TRENT, HEAD_TRENT, FUNC_HIDE, -1, -1, 1000, 200, 0x80002000, 0x00300000, 0x80, 0x08, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRDY357TRENT, 0x0002, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x09, 0x005a, BODY_STRIPES, HEAD_RANDOM, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0009, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x0a, 0x0059, BODY_STRIPES, HEAD_RANDOM, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x000a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x0b, 0x0058, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0408, -1, -1, 100, 13, 0xc0082000, 0x00000040, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x000b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x0c, 0x00d1, BODY_STRIPES, HEAD_RANDOM, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x000c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x0d, 0x00d4, BODY_STRIPES, HEAD_RANDOM, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x000d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x0e, 0x00d5, BODY_MRBLONDE, HEAD_MRBLONDE, 0x0409, -1, -1, 100, 13, 0xc0082000, 0x00000040, 0x02, 0x02, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x000e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x13, 0x004c, BODY_STRIPES, HEAD_RANDOM, 0x040a, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0013, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x14, 0x005f, BODY_STRIPES, HEAD_RANDOM, 0x040b, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0014, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x15, 0x004d, BODY_STRIPES, HEAD_RANDOM, 0x040c, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0015, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x16, 0x0055, BODY_STRIPES, HEAD_RANDOM, 0x040d, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x03, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0016, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x17, 0x0081, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x18, 0x0079, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x19, 0x007b, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1a, 0x007c, BODY_STRIPES, HEAD_RANDOM, FUNC_INIT_STRIPES, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x04, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1b, 0x016b, BODY_STRIPES, HEAD_RANDOM, 0x040e, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1c, 0x016c, BODY_STRIPES, HEAD_RANDOM, 0x040f, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x05, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1d, 0x0048, BODY_STRIPES, HEAD_RANDOM, 0x0410, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1e, 0x017e, BODY_STRIPES, HEAD_RANDOM, 0x0411, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x06, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1f, 0x0177, BODY_STRIPES, HEAD_RANDOM, 0x0412, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x20, 0x0189, BODY_STRIPES, HEAD_RANDOM, 0x0413, -1, -1, 100, 13, 0xc0082000, 0x00000000, 0x02, 0x07, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x26, 0x01bb, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x27, 0x01bc, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x28, 0x01bd, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x29, 0x01be, BODY_CHICROB, 0x00, FUNC_INIT_ROBOT, -1, -1, 1000, 50, 0x00080000, 0x00000000, 0x02, 0x08, -1, 0, 0x00000000
|
|
chr 0x00000400, 0x01, 0x01b5, BODY_TRENT, HEAD_TRENT, FUNC_TRENT_WAITING, -1, -1, 1000, 200, 0x80002000, 0x00300000, 0x02, 0x08, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRDY357TRENT, 0x0001, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DY357LX, 0x00ffffff, 0x00000000
|
|
chr 0x00018400, 0x05, 0x01b6, BODY_PRESIDENT, HEAD_PRESIDENT, FUNC_INIT_PRESIDENT, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000
|
|
chr 0x00008400, 0x08, 0x0086, BODY_PRESIDENT_CLONE, HEAD_PRESIDENT, 0x041a, -1, -1, 1000, 20, 0x00002000, 0x00300000, 0x02, 0x09, -1, 0, 0x02001400
|
|
chr 0x00000200, 0x2a, 0x0088, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x002a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x2b, 0x0087, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x002b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x2c, 0x0085, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x09, -1, 0, 0x02001400
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x2d, 0x019e, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x2e, 0x018e, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x2f, 0x01a7, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_INIT_BLONDE, -1, -1, 1000, 100, 0x80004608, 0x00008080, 0x02, 0x0a, -1, 0, 0x02001400
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x30, 0x002d, BODY_STRIPES, HEAD_RANDOM, FUNC_SPAWNER, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x31, 0x0029, BODY_STRIPES, HEAD_RANDOM, FUNC_SPAWNER, -1, -1, 100, 13, 0xe0082000, 0x00000000, 0x02, 0x0b, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x32, 0x009a, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x33, 0x009b, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x34, 0x01b7, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0xc0082000, 0x10000000, 0x02, 0x0c, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x35, 0x0004, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082000, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0035, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x36, 0x01b9, BODY_STRIPES, HEAD_RANDOM, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082101, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRAVENGER, 0x0036, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_K7AVENGER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x37, 0x0012, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_STARTING_AREA_GUARD, -1, -1, 100, 13, 0x80082000, 0x10000000, 0x02, 0x0d, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSNIPERRIFLE, 0x0037, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SNIPERRIFLE, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x03, 0x0121, BODY_MRBLONDE, HEAD_MRBLONDE, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00004000, 0x04, 0x012f, BODY_SKEDAR, 0x00, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x02, 0x01, -1, 0, 0x00000000
|
|
tag 0x00, 1
|
|
object 0x0100, MODEL_A51_CRATE1, 0xffff, 0x00021501, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x01, 1
|
|
object 0x0100, MODEL_PRESCAPSULE, 0x01d8, 0x000001e1, 0x00000101, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00002ee0, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x03, 1
|
|
object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x000001e1, 0x00002100, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000030d4, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x02, 1
|
|
weapon 0x0180, MODEL_CHRBRIEFCASE, 0x000c, 0x00000001, 0x00000001, 0x00400000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PRESIDENTSCANNER, 0x00ffffff, 0x00000000
|
|
autogun 0x0100, MODEL_GROUNDGUN, 0x0043, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000, 0x003d0000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
|
autogun 0x0100, MODEL_GROUNDGUN, 0x003b, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000fa0, 0x00000000, 0x00000000, 0x0fff0000, 0x00380000, 0x00000000, 0x00020000, 0xfffe0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000016c, 0x001e0000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x06, 1
|
|
shield 0x0100, MODEL_CHRSHIELD, 0x0106, 0x00000001, 0x000000e0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000
|
|
tag 0x07, 1
|
|
shield 0x0100, MODEL_CHRSHIELD, 0x0090, 0x00000001, 0x000000c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00010000, 0x00000000, 0x00000000
|
|
tag 0x08, 1
|
|
weapon 0x0100, MODEL_MULTI_AMMO_CRATE, 0x0106, 0x00120001, 0x00080001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PROXIMITYMINE, 0x00ffffff, 0x00000000
|
|
pad_effect PADEFFECT_SPARKS, 0x000001db
|
|
pad_effect PADEFFECT_SMOKE, 0x000001dc
|
|
pad_effect PADEFFECT_SPARKS, 0x000001dd
|
|
pad_effect PADEFFECT_SPARKS, 0x000001de
|
|
endprops
|
|
|
|
intro:
|
|
outfit OUTFIT_SNOW
|
|
intro_weapon WEAPON_FALCON2_SCOPE, -1
|
|
ammo AMMOTYPE_PISTOL, 50
|
|
ammo AMMOTYPE_RIFLE, 100
|
|
intro_weapon WEAPON_REMOTEMINE, -1
|
|
ammo AMMOTYPE_REMOTE_MINE, 3
|
|
intro_weapon WEAPON_NIGHTVISION, -1
|
|
intro_weapon WEAPON_HORIZONSCANNER, -1
|
|
spawn 0x00b8
|
|
endintro
|
|
|
|
path00:
|
|
pad 0x0059
|
|
pad 0x0096
|
|
pad 0x0095
|
|
pad 0x0094
|
|
pad 0x00be
|
|
pad 0x00bd
|
|
pad 0x009e
|
|
endpath
|
|
|
|
path01:
|
|
pad 0x00d1
|
|
pad 0x00d2
|
|
pad 0x00d3
|
|
pad 0x00b1
|
|
pad 0x00cd
|
|
pad 0x00a6
|
|
pad 0x00b3
|
|
pad 0x00c3
|
|
endpath
|
|
|
|
path02:
|
|
pad 0x004c
|
|
pad 0x0057
|
|
pad 0x005e
|
|
pad 0x005d
|
|
pad 0x005b
|
|
pad 0x005f
|
|
endpath
|
|
|
|
path03:
|
|
pad 0x005f
|
|
pad 0x005b
|
|
pad 0x005c
|
|
pad 0x005d
|
|
pad 0x0066
|
|
pad 0x005d
|
|
pad 0x005c
|
|
pad 0x005b
|
|
endpath
|
|
|
|
path04:
|
|
pad 0x004d
|
|
pad 0x0051
|
|
pad 0x0050
|
|
pad 0x0053
|
|
pad 0x0054
|
|
pad 0x0056
|
|
pad 0x006e
|
|
endpath
|
|
|
|
path05:
|
|
pad 0x0055
|
|
pad 0x0052
|
|
pad 0x0054
|
|
pad 0x0056
|
|
pad 0x006e
|
|
endpath
|
|
|
|
path06:
|
|
pad 0x0030
|
|
pad 0x002f
|
|
pad 0x0167
|
|
pad 0x0166
|
|
pad 0x0165
|
|
pad 0x0164
|
|
pad 0x016a
|
|
pad 0x0169
|
|
pad 0x016b
|
|
endpath
|
|
|
|
path07:
|
|
pad 0x016c
|
|
pad 0x016d
|
|
pad 0x016e
|
|
pad 0x016f
|
|
pad 0x0170
|
|
pad 0x0171
|
|
pad 0x0172
|
|
pad 0x0173
|
|
endpath
|
|
|
|
path08:
|
|
pad 0x0048
|
|
pad 0x0049
|
|
pad 0x004a
|
|
pad 0x0182
|
|
pad 0x0183
|
|
pad 0x0180
|
|
pad 0x0181
|
|
endpath
|
|
|
|
path09:
|
|
pad 0x017e
|
|
pad 0x017f
|
|
pad 0x017b
|
|
pad 0x017c
|
|
pad 0x017d
|
|
pad 0x0034
|
|
endpath
|
|
|
|
path10:
|
|
pad 0x0177
|
|
pad 0x0175
|
|
pad 0x0176
|
|
pad 0x0189
|
|
endpath
|
|
|
|
path11:
|
|
pad 0x0189
|
|
pad 0x0188
|
|
pad 0x0187
|
|
pad 0x0186
|
|
pad 0x0185
|
|
pad 0x0184
|
|
endpath
|
|
|
|
path12:
|
|
pad 0x0106
|
|
pad 0x0107
|
|
pad 0x00f6
|
|
pad 0x0104
|
|
endpath
|
|
|
|
paths:
|
|
register_path path00, 0, 0
|
|
register_path path01, 1, 0
|
|
register_path path02, 2, 0
|
|
register_path path03, 3, 0
|
|
register_path path04, 4, 0
|
|
register_path path05, 5, 0
|
|
register_path path06, 6, 0
|
|
register_path path07, 7, 0
|
|
register_path path08, 8, 0
|
|
register_path path09, 9, 0
|
|
register_path path10, 10, 0
|
|
register_path path11, 11, 0
|
|
register_path path12, 12, 0
|
|
endpaths
|
|
|
|
func1001_objectives_failed_msg:
|
|
yield
|
|
set_chr_flag_bank3 CHR_PRES_CLONE, CHRFLAG3_04000000
|
|
set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_04000000
|
|
set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_04000000
|
|
set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG
|
|
endfunction
|
|
|
|
func1400_setup_counterop:
|
|
yield
|
|
set_chr_alliance CHR_COUNTEROP, ALLIANCE_ENEMY
|
|
set_function CHR_SELF, GFUNC_REBUILD_GROUPS
|
|
endfunction
|
|
|
|
func1011_setup_snow:
|
|
enable_snow TRUE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1002_intro:
|
|
set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
set_music_track MUSIC_CRASHSITE_INTRO
|
|
camera_movement 0x01b5
|
|
cmd0175 60
|
|
|
|
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x01b6, -1, -1, 0x0600, CHR_JOANNA, 4
|
|
set_chr_hud_visible CHR_JOANNA, TRUE
|
|
|
|
restart_timer
|
|
fade_to_color 0x000000ff, 0
|
|
fade_to_color 0x00000000, 300
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
|
|
.macro wait_until time loopid
|
|
beginloop \loopid
|
|
if_controller_button_pressed /*goto*/ 0x65
|
|
if_timer_gt \time, /*goto*/ 0x08
|
|
endloop \loopid
|
|
label 0x08
|
|
.endm
|
|
|
|
wait_until 724, 0x69
|
|
speak CHR_JOANNA, 0x0a20, 0x7759, CHANNEL_10, COLOR_09_BLUE // "Ahhh... uuhhhh..."
|
|
|
|
wait_until 830, 0x6a
|
|
speak CHR_JOANNA, 0x0a22, 0x7457, CHANNEL_10, COLOR_06_WHITE // "Agent Dark! Please report!"
|
|
|
|
wait_until 980, 0x6b
|
|
speak CHR_JOANNA, 0x0a21, 0x775a, CHANNEL_10, COLOR_09_BLUE // "Ahhh... uhh... owww..."
|
|
|
|
wait_until 1030, 0x6c
|
|
speak CHR_JOANNA, 0x0a23, 0x7458, CHANNEL_10, COLOR_06_WHITE // "Perfect Dark, come in!"
|
|
|
|
wait_until 1152, 0x6e
|
|
speak CHR_JOANNA, 0x0a24, 0x7459, CHANNEL_10, COLOR_09_BLUE // "A-agent Dark reporting in..."
|
|
|
|
wait_until 1372, 0x6f
|
|
speak CHR_JOANNA, 0x0a25, 0x745a, CHANNEL_10, COLOR_06_WHITE // "Agent Dark! Please reply!"
|
|
|
|
wait_until 1610, 0x6d
|
|
speak CHR_JOANNA, 0x0a26, 0x745b, CHANNEL_10, COLOR_09_BLUE // "Something's jamming my transmissions... It's comin..."
|
|
|
|
wait_until 1875, 0x70
|
|
speak CHR_JOANNA, -1, 0x8189, CHANNEL_10, COLOR_00_GREEN
|
|
|
|
wait_until 1900, 0x71
|
|
speak CHR_JOANNA, -1, 0x818a, CHANNEL_10, COLOR_00_GREEN
|
|
|
|
wait_until 1926, 0x72
|
|
speak CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN
|
|
|
|
wait_until 1958, 0x73
|
|
speak CHR_JOANNA, -1, 0x8189, CHANNEL_10, COLOR_00_GREEN
|
|
|
|
wait_until 2000, 0x74
|
|
speak CHR_JOANNA, 0x0a27, 0x745c, CHANNEL_10, COLOR_09_BLUE // "I'd better find the jamming device and check that ..."
|
|
|
|
wait_until 2116, 0x75
|
|
speak CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN
|
|
|
|
wait_until 2168, 0x76
|
|
speak CHR_JOANNA, -1, 0x8187, CHANNEL_6, COLOR_00_GREEN
|
|
|
|
wait_until 2224, 0x78
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE
|
|
|
|
wait_until 2305, 0x79
|
|
speak CHR_JOANNA, -1, 0x01db, CHANNEL_5, COLOR_00_GREEN
|
|
|
|
wait_until 2392, 0x7a
|
|
speak CHR_JOANNA, -1, 0x8189, CHANNEL_7, COLOR_00_GREEN
|
|
|
|
wait_until 2412, 0x7b
|
|
speak CHR_JOANNA, -1, 0x8187, CHANNEL_6, COLOR_00_GREEN
|
|
|
|
wait_until 2460, 0x7c
|
|
speak CHR_JOANNA, -1, 0x8188, CHANNEL_7, COLOR_00_GREEN
|
|
|
|
wait_until 2513, 0x7d
|
|
speak CHR_JOANNA, -1, 0x8189, CHANNEL_6, COLOR_00_GREEN
|
|
|
|
wait_until 2685, 0x7e
|
|
speak CHR_JOANNA, -1, 0x818a, CHANNEL_7, COLOR_00_GREEN
|
|
|
|
beginloop 0x0a
|
|
if_camera_animating /*goto*/ 0x31
|
|
goto_next 0x65
|
|
|
|
label 0x31
|
|
if_controller_button_pressed /*goto*/ 0x65
|
|
label 0x31
|
|
endloop 0x0a
|
|
|
|
label 0x65
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE
|
|
mute_channel CHANNEL_7
|
|
mute_channel CHANNEL_6
|
|
mute_channel CHANNEL_5
|
|
mute_channel CHANNEL_10
|
|
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x01b6, -2, -1, 0x0600, CHR_JOANNA, 2
|
|
restart_default_music
|
|
reset_ambience
|
|
set_chr_hud_visible CHR_JOANNA, FALSE
|
|
enter_firstperson
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0402_outro_from_menu:
|
|
set_function 0x06, GFUNC_IDLE
|
|
set_function 0x03, GFUNC_IDLE
|
|
set_function CHR_SKEDAR, GFUNC_IDLE
|
|
set_function CHR_ELVIS_OUTRO, GFUNC_IDLE
|
|
set_function CHR_TRENT, GFUNC_IDLE
|
|
hide_chr CHR_ROBOT1
|
|
hide_chr CHR_ROBOT2
|
|
hide_chr CHR_ROBOT3
|
|
hide_chr CHR_ROBOT4
|
|
set_function CHR_SELF, FUNC_OUTRO
|
|
endfunction
|
|
|
|
func0402_outro:
|
|
set_stage_flag STAGEFLAG_OUTRO_STARTED
|
|
hide_object OBJ_HOVERBIKE
|
|
set_function CHR_PRESIDENT, GFUNC_IDLE
|
|
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31
|
|
set_target_chr CHR_JOANNA
|
|
goto_next 0x08
|
|
label 0x31
|
|
set_target_chr CHR_VELVET
|
|
label 0x08
|
|
camera_movement 0x01d9
|
|
set_music_track MUSIC_CRASHSITE_OUTRO
|
|
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 0xf1, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_P1P2, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN
|
|
set_function TARGET_CHR, GFUNC_IDLE
|
|
|
|
remove_chr CHR_ELVIS
|
|
set_function CHR_ELVIS, GFUNC_IDLE
|
|
|
|
set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_PRESIDENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_function CHR_PRESIDENT, GFUNC_IDLE
|
|
|
|
set_chr_flag_bank3 TARGET_CHR, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 TARGET_CHR, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 TARGET_CHR, CHRFLAG2_00020000
|
|
animation 0x01df, -1, -1, 0x0600, TARGET_CHR, 4
|
|
|
|
set_chr_flag_bank3 CHR_SKEDAR, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_SKEDAR, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_00020000
|
|
animation 0x01da, -1, -1, 0x0600, CHR_SKEDAR, 4
|
|
|
|
set_chr_flag_bank3 CHR_ELVIS_OUTRO, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_flag_bank3 CHR_ELVIS_OUTRO, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_ELVIS_OUTRO, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_ELVIS_OUTRO, CHRFLAG2_00020000
|
|
animation 0x01db, -1, -1, 0x0600, CHR_ELVIS_OUTRO, 4
|
|
|
|
set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_flag_bank3 CHR_TRENT, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_TRENT, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_TRENT, CHRFLAG2_00020000
|
|
animation 0x01dc, -1, -1, 0x0600, CHR_TRENT, 4
|
|
|
|
set_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_MRBLONDE, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_00020000
|
|
animation 0x01dd, -1, -1, 0x0600, CHR_MRBLONDE, 4
|
|
|
|
set_chr_flag_bank3 CHR_PRESIDENT_OUTRO, CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_flag_bank3 CHR_PRESIDENT_OUTRO, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_PRESIDENT_OUTRO, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_PRESIDENT_OUTRO, CHRFLAG2_00020000
|
|
animation 0x01de, -1, -1, 0x0600, CHR_PRESIDENT_OUTRO, 4
|
|
|
|
show_object 0x00
|
|
set_object_flag_bank1 OBJ_CRATE, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 OBJ_CRATE, OBJECTFLAG2_00000010
|
|
object_do_animation 0x01e0, OBJ_CRATE, 0x04ff, 0xff
|
|
restart_timer
|
|
set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE
|
|
set_cutscene_weapon CHR_ELVIS_OUTRO, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_ELVIS_OUTRO, WEAPON_HAMMER, WEAPON_NONE
|
|
show_nonessential_chrs FALSE
|
|
|
|
wait_until 146, 0x69
|
|
play_sound 0x0594, CHANNEL_7
|
|
|
|
wait_until 200, 0x6a
|
|
play_sound 0x0595, CHANNEL_6
|
|
|
|
wait_until 248, 0x6b
|
|
speak CHR_JOANNA, 0x0a28, 0x745d, CHANNEL_10, COLOR_09_BLUE // "How are you feeling, Mr. President?"
|
|
|
|
wait_until 414, 0x6c
|
|
speak CHR_JOANNA, 0x0a29, 0x745e, CHANNEL_10, COLOR_08_RED // "Better now, young lady. Today, I think, will take ..."
|
|
|
|
wait_until 490, 0x6e
|
|
play_sound 0x0596, CHANNEL_5
|
|
|
|
wait_until 526, 0x6f
|
|
play_sound 0x0597, CHANNEL_7
|
|
|
|
wait_until 578, 0x6d
|
|
play_sound 0x0427, CHANNEL_6
|
|
|
|
wait_until 1078, 0x71
|
|
play_sound 0x0596, CHANNEL_5
|
|
|
|
wait_until 1116, 0x72
|
|
play_sound 0x0597, CHANNEL_7
|
|
|
|
wait_until 1200, 0x70
|
|
speak CHR_JOANNA, 0x0a2a, 0x745f, CHANNEL_10, COLOR_09_BLUE // "Just one thing, sir? What is the Pelagic II that T..."
|
|
|
|
wait_until 1474, 0x74
|
|
play_sound 0x0525, CHANNEL_5
|
|
play_sound 0x00f8, CHANNEL_10
|
|
|
|
wait_until 1490, 0x75
|
|
play_sound 0x0596, CHANNEL_7
|
|
|
|
wait_until 1492, 0x76
|
|
play_sound 0x0594, CHANNEL_6
|
|
|
|
wait_until 1556, 0x77
|
|
play_sound 0x00f8, CHANNEL_10
|
|
|
|
wait_until 1626, 0x73
|
|
speak CHR_JOANNA, 0x0a2b, 0x7460, CHANNEL_10, COLOR_08_RED // "It's a U.S. government deep sea research vessel, o..."
|
|
|
|
wait_until 1807, 0x79
|
|
play_sound 0x0595, CHANNEL_7
|
|
|
|
wait_until 1850, 0x7a
|
|
play_sound 0x0597, CHANNEL_6
|
|
|
|
wait_until 1872, 0x7c
|
|
play_sound 0x0595, CHANNEL_7
|
|
|
|
wait_until 2074, 0x7d
|
|
play_sound 0x0594, CHANNEL_6
|
|
|
|
wait_until 2270, 0x7e
|
|
play_sound 0x0596, CHANNEL_5
|
|
|
|
wait_until 2286, 0x7f
|
|
play_sound 0x818a, CHANNEL_7
|
|
|
|
wait_until 2296, 0x80
|
|
play_sound 0x8189, CHANNEL_6
|
|
|
|
wait_until 2316, 0x81
|
|
play_sound 0x8187, CHANNEL_5
|
|
|
|
wait_until 2335, 0x82
|
|
play_sound 0x8188, CHANNEL_7
|
|
|
|
wait_until 2450, 0x7b
|
|
speak CHR_JOANNA, 0x0a2c, 0x7461, CHANNEL_10, COLOR_09_BLUE // "Trent has a lot to answer for, but I don't think w..."
|
|
|
|
wait_until 3150, 0x83
|
|
speak CHR_JOANNA, 0x0a2d, 0x7462, CHANNEL_10, COLOR_03_RED // "You have failed, Easton. You are a flawed device, ..."
|
|
|
|
wait_until 3380, 0x88
|
|
play_sound 0x818a, CHANNEL_7
|
|
|
|
wait_until 3580, 0x87
|
|
speak CHR_JOANNA, 0x0a2e, 0x7463, CHANNEL_10, COLOR_05_GREEN // "Just try it, you Scandinavian freak!"
|
|
|
|
wait_until 3747, 0x84
|
|
play_sound 0x8189, CHANNEL_5
|
|
|
|
wait_until 3875, 0x85
|
|
play_sound 0x8188, CHANNEL_7
|
|
|
|
wait_until 4054, 0x86
|
|
play_sound 0x05a0, CHANNEL_5
|
|
play_sound 0x005c, CHANNEL_10
|
|
set_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_CLOAKED
|
|
set_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_CLOAKED
|
|
|
|
wait_until 4100, 0x95
|
|
unset_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_CLOAKED
|
|
play_sound 0x052a, CHANNEL_10
|
|
|
|
wait_until 4200, 0x78
|
|
speak CHR_JOANNA, 0x0a2f, 0x7464, CHANNEL_10, COLOR_05_GREEN // "Noooooooo!!!"
|
|
|
|
wait_until 4240, 0x93
|
|
play_sound 0x05c0, CHANNEL_10
|
|
|
|
wait_until 4296, 0x89
|
|
play_sound 0x007d, CHANNEL_6
|
|
|
|
wait_until 4444, 0x8a
|
|
play_sound 0x05a0, CHANNEL_5
|
|
play_sound 0x0530, CHANNEL_10
|
|
|
|
wait_until 4506, 0x8b
|
|
play_sound 0x05a1, CHANNEL_7
|
|
|
|
wait_until 4544, 0x96
|
|
set_chr_flag_bank2 CHR_SKEDAR, CHRFLAG2_CLOAKED
|
|
|
|
wait_until 4566, 0x8c
|
|
play_sound 0x005b, CHANNEL_10
|
|
unset_chr_flag_bank2 CHR_MRBLONDE, CHRFLAG2_CLOAKED
|
|
|
|
wait_until 4576, 0x8d
|
|
|
|
wait_until 4622, 0x8e
|
|
play_sound 0x8187, CHANNEL_7
|
|
|
|
wait_until 4678, 0x8f
|
|
play_sound 0x8188, CHANNEL_7
|
|
|
|
wait_until 4752, 0x90
|
|
play_sound 0x8189, CHANNEL_7
|
|
|
|
beginloop 0x0a
|
|
if_camera_animating /*goto*/ 0x31
|
|
goto_next 0x65
|
|
|
|
label 0x31
|
|
if_controller_button_pressed /*goto*/ 0x65
|
|
label 0x31
|
|
endloop 0x0a
|
|
|
|
label 0x65
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0407_init_blonde:
|
|
set_accuracy 20
|
|
set_reaction_speed 55
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 60
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
set_function CHR_SELF, GFUNC_UNALERTED
|
|
endfunction
|
|
|
|
func0406_init_stripes:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 16
|
|
set_reaction_speed 55
|
|
set_chr_health CHR_SELF, 60
|
|
set_armor 0
|
|
set_recovery_speed 30
|
|
set_shield 0
|
|
set_function CHR_SELF, GFUNC_UNALERTED
|
|
endfunction
|
|
|
|
func1003_msg_therestheescapepod:
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 1000, 0x01d8, /*goto*/ 0x31
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
speak CHR_P1P2, 0x0a0a, 0x73cc, CHANNEL_6, COLOR_09_BLUE // "There's the escape pod."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1004_msg_maybetheresabeacon:
|
|
restart_timer
|
|
beginloop 0x06
|
|
endloop 0x06
|
|
|
|
// Unreachable
|
|
label 0x31
|
|
speak CHR_JOANNA, 0x0a0b, 0x73cd, CHANNEL_6, COLOR_09_BLUE // "Maybe there's a beacon in there."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1005_msg_thejamming:
|
|
if_difficulty_lt DIFF_PA, /*goto*/ 0x0f
|
|
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_objective_complete 2, /*goto*/ 0x0f
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x31
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
speak CHR_P1P2, 0x0a0c, 0x73ce, CHANNEL_6, COLOR_09_BLUE // "The jamming... It's coming from that ship."
|
|
label 0x0f
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1006_msg_elvisbeable:
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 1000, 0x0105, /*goto*/ 0x31
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
speak CHR_P1P2, 0x0a0d, 0x73cf, CHANNEL_6, COLOR_09_BLUE // "Elvis... He'll be able to protect the President."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
.macro init_path pathid function
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 16
|
|
set_reaction_speed 55
|
|
set_chr_health CHR_SELF, 60
|
|
set_armor 0
|
|
set_recovery_speed 30
|
|
set_shield 0
|
|
set_return_function CHR_SELF, \function
|
|
assign_path \pathid
|
|
start_path
|
|
set_function CHR_SELF, GFUNC_UNALERTED_0004
|
|
.endm
|
|
|
|
func0408_start_path00:
|
|
init_path 0, 0x0408
|
|
endfunction
|
|
|
|
func0409_start_path01:
|
|
init_path 1, 0x0409
|
|
endfunction
|
|
|
|
func040a_start_path02:
|
|
init_path 2, 0x040a
|
|
endfunction
|
|
|
|
func040b_start_path03:
|
|
init_path 3, 0x040b
|
|
endfunction
|
|
|
|
func040c_start_path04:
|
|
init_path 4, 0x040c
|
|
endfunction
|
|
|
|
func040d_start_path05:
|
|
init_path 5, 0x040d
|
|
endfunction
|
|
|
|
func040e_start_path06:
|
|
init_path 6, 0x040e
|
|
endfunction
|
|
|
|
func040f_start_path07:
|
|
init_path 7, 0x040f
|
|
endfunction
|
|
|
|
func0410_start_path08:
|
|
init_path 8, 0x0410
|
|
endfunction
|
|
|
|
func0411_start_path09:
|
|
init_path 9, 0x0411
|
|
endfunction
|
|
|
|
func0412_start_path10:
|
|
init_path 10, 0x0412
|
|
endfunction
|
|
|
|
func0413_start_path11:
|
|
init_path 11, 0x0413
|
|
endfunction
|
|
|
|
/**
|
|
* This function is unfinished. Target labels don't exist.
|
|
*
|
|
* Looks like it was intended to be a spawning function.
|
|
*/
|
|
unregistered_function1:
|
|
label 0x66
|
|
restart_timer
|
|
|
|
beginloop 0x67
|
|
dprint "TIME\n"
|
|
if_timer_lt 1800, /*goto*/ 0x98
|
|
label 0x31
|
|
dprint "SQUAD\n"
|
|
if_num_chrs_in_group_gt 1, 0x0f, /*goto*/ 0x98
|
|
call_rng
|
|
if_rand_gt 64, /*goto*/ 0x69
|
|
if_rand_gt 128, /*goto*/ 0x6a
|
|
if_rand_gt 196, /*goto*/ 0x6b
|
|
label 0x98
|
|
endloop 0x67
|
|
|
|
label 0x68
|
|
yield
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
goto_first 0x66
|
|
|
|
endfunction
|
|
|
|
func0415_unused:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 16
|
|
set_reaction_speed 55
|
|
set_chr_health CHR_SELF, 60
|
|
set_armor 0
|
|
set_recovery_speed 30
|
|
set_shield 0
|
|
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x00000000, /*goto*/ 0x08
|
|
label 0x08
|
|
set_chr_alliance CHR_SELF, ALLIANCE_ENEMY
|
|
set_self_flag_bankx CHRFLAG0_00002000, BANK_0
|
|
set_group 0x0f
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER
|
|
endfunction
|
|
|
|
func100c_spawn_dd_guards:
|
|
label 0x66
|
|
restart_timer
|
|
|
|
beginloop 0x67
|
|
if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f
|
|
if_stage_flag_eq STAGEFLAG_ELVIS_GAVE_PROXYMINE, TRUE, /*goto*/ 0x31
|
|
if_objective_complete 0, /*goto*/ 0x31
|
|
if_objective_complete 1, /*goto*/ 0x31
|
|
if_objective_complete 2, /*goto*/ 0x31
|
|
if_objective_complete 3, /*goto*/ 0x31
|
|
if_objective_complete 4, /*goto*/ 0x31
|
|
endloop 0x67
|
|
|
|
label 0x31
|
|
dprint "TIME\n"
|
|
if_timer_lt 3600, /*goto*/ 0x98
|
|
label 0x31
|
|
dprint "SQUAD\n"
|
|
if_num_chrs_in_group_gt 1, 0x0e, /*goto*/ 0x98
|
|
call_rng
|
|
if_rand_gt 64, /*goto*/ 0x69
|
|
if_rand_gt 128, /*goto*/ 0x6a
|
|
if_rand_gt 196, /*goto*/ 0x6b
|
|
|
|
// 1
|
|
if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f
|
|
try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x0126, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68
|
|
goto_next 0x98
|
|
|
|
// 2
|
|
label 0x69
|
|
if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f
|
|
try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x00e5, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68
|
|
goto_next 0x98
|
|
|
|
// 3
|
|
label 0x6a
|
|
if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f
|
|
try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x0130, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68
|
|
goto_next 0x98
|
|
|
|
// 4
|
|
label 0x6b
|
|
if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f
|
|
try_spawn_chr BODY_DD_GUARD, HEAD_RANDOM, 0x00fd, FUNC_SPAWNED_GUARD, 0x00000200, /*goto*/ 0x68
|
|
goto_next 0x98
|
|
|
|
// Spawn failed
|
|
label 0x98
|
|
goto_first 0x67
|
|
|
|
// Spawn worked
|
|
label 0x68
|
|
if_stage_flag_eq STAGEFLAG_OUTRO_STARTED, TRUE, /*goto*/ 0x0f
|
|
yield
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
goto_first 0x66
|
|
|
|
label 0x0f
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0416_spawned_guard:
|
|
set_chr_dodge_rating 2, 0x0a
|
|
set_accuracy 16
|
|
set_reaction_speed 55
|
|
set_chr_health CHR_SELF, 60
|
|
set_armor 0
|
|
set_recovery_speed 30
|
|
set_shield 0
|
|
try_draw_weapon MODEL_CHRAVENGER, WEAPON_K7AVENGER, 0x00000000, /*goto*/ 0x08
|
|
label 0x08
|
|
set_chr_alliance CHR_SELF, ALLIANCE_ENEMY
|
|
set_self_flag_bankx CHRFLAG0_00002000, BANK_0
|
|
set_self_flag_bankx CHRFLAG0_AIVSAI, BANK_0
|
|
set_group 0x0e
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
// Pad is next to UFO
|
|
run_to_pad 0x0105
|
|
set_return_function CHR_SELF, GFUNC_UNALERTED
|
|
set_function CHR_SELF, GFUNC_UNALERTED
|
|
endfunction
|
|
|
|
func1008_escapepod:
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_object_in_good_condition OBJ_ESCAPEPOD, /*goto*/ 0x31
|
|
|
|
// Pod destroyed
|
|
mute_channel CHANNEL_0
|
|
message CHR_JOANNA, 0x0a0f // "Critical mission object has been destroyed."
|
|
set_stage_flag STAGEFLAG_ESCAPEPOD_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Pod healthy
|
|
label 0x31
|
|
if_stage_flag_eq STAGEFLAG_BEACON_ACTIVATED, TRUE, /*goto*/ 0x08
|
|
if_chr_activated_object CHR_P1P2, OBJ_ESCAPEPOD, /*goto*/ 0x31
|
|
label 0x08
|
|
reloop 0x06
|
|
|
|
label 0x31
|
|
assign_sound 0x8115, CHANNEL_0
|
|
play_sound_from_object CHANNEL_0, OBJ_ESCAPEPOD, 0x0320, 0x0640
|
|
message CHR_P1P2, 0x0a0e // "Distress beacon has been activated."
|
|
set_stage_flag STAGEFLAG_BEACON_ACTIVATED
|
|
endloop 0x06
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1009_check_shuttle_destroyed:
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
|
|
beginloop 0x06
|
|
if_object_in_good_condition OBJ_SKEDAR_SHUTTLE, /*goto*/ 0x31
|
|
message CHR_JOANNA, 0x0a15 // "Jamming device has been shut down."
|
|
set_stage_flag STAGEFLAG_SKEDAR_SHUTTLE_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x31
|
|
endloop 0x06
|
|
|
|
endfunction
|
|
|
|
func100a_check_president_dead:
|
|
beginloop 0x06
|
|
if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x31
|
|
if_chr_dying CHR_PRESIDENT, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x31
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
message CHR_JOANNA, 0x0a16 // "President has been killed."
|
|
set_stage_flag STAGEFLAG_PRESIDENT_DEAD
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100b_check_clone_dead:
|
|
beginloop 0x06
|
|
if_chr_death_animation_finished CHR_PRES_CLONE, /*goto*/ 0x31
|
|
if_chr_dying CHR_PRES_CLONE, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_PRES_CLONE, /*goto*/ 0x31
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
message CHR_JOANNA, 0x0a17 // "Presidential clone has been eliminated."
|
|
set_stage_flag STAGEFLAG_CLONE_DEAD
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0403_init_elvis:
|
|
set_shield 100
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_accuracy 100
|
|
set_reaction_speed 100
|
|
set_armor 1000
|
|
set_chr_health CHR_SELF, 1000
|
|
set_self_flag_bank3 CHRFLAG3_00080000
|
|
assign_path 12
|
|
start_path
|
|
set_function CHR_SELF, FUNC_ELVIS
|
|
endfunction
|
|
|
|
func0404_elvis:
|
|
set_onshot_function FUNC_ELVIS
|
|
label 0x04
|
|
restart_timer
|
|
|
|
beginloop 0x06
|
|
if_chr_idle /*goto*/ 0x31
|
|
if_path_started /*goto*/ 0x31
|
|
restart_timer
|
|
start_path
|
|
label 0x31
|
|
dprint "GO TO PAD\n"
|
|
set_target_chr CHR_JOANNA
|
|
set_follow_chr CHR_JOANNA
|
|
if_stage_flag_eq STAGEFLAG_ELVIS_GAVE_PROXYMINE, TRUE, /*goto*/ 0x31
|
|
if_objective_complete 0, /*goto*/ 0x31
|
|
if_objective_complete 1, /*goto*/ 0x31
|
|
if_objective_complete 2, /*goto*/ 0x31
|
|
if_objective_complete 3, /*goto*/ 0x31
|
|
if_objective_complete 4, /*goto*/ 0x31
|
|
if_chr_sees_player /*goto*/ 0xa5
|
|
set_target_chr CHR_VELVET
|
|
set_follow_chr CHR_VELVET
|
|
if_chr_sees_player /*goto*/ 0xa5
|
|
label 0x31
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x0a
|
|
if_timer_gt 600, /*goto*/ 0x0b
|
|
endloop 0x06
|
|
|
|
// 10 seconds passed
|
|
label 0x0b
|
|
call_rng
|
|
if_rand_gt 128, /*goto*/ 0x31
|
|
|
|
// 50% chance of doing look around animation
|
|
call_rng
|
|
if_rand_lt 64, /*goto*/ 0x99
|
|
if_rand_lt 128, /*goto*/ 0x9a
|
|
if_rand_lt 196, /*goto*/ 0x9b
|
|
|
|
set_self_flag_bankx CHRFLAG1_DONE_SEARCH_ANIM, BANK_1
|
|
animation ANIM_LOOK_AROUND_025B, 0, -1, 0x100a, CHR_SELF, 2
|
|
goto_next 0x31
|
|
|
|
label 0x99
|
|
animation ANIM_LOOK_AROUND_025C, 0, -1, 0x100a, CHR_SELF, 2
|
|
goto_next 0x31
|
|
|
|
label 0x9a
|
|
animation ANIM_LOOK_AROUND_025D, 0, -1, 0x100a, CHR_SELF, 2
|
|
goto_next 0x31
|
|
|
|
label 0x9b
|
|
animation ANIM_LOOK_AROUND_025E, 0, -1, 0x100a, CHR_SELF, 2
|
|
|
|
label 0x31
|
|
goto_first 0x04
|
|
|
|
// Detected enemy
|
|
label 0x0a
|
|
dprint "DETECTED\n"
|
|
set_return_function CHR_SELF, FUNC_INIT_ELVIS
|
|
set_onshot_function FUNC_INIT_ELVIS
|
|
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
|
|
|
|
// Sees player
|
|
label 0xa5
|
|
set_target_chr FOLLOW_CHR
|
|
try_run_to_target_chr /*goto*/ 0x12
|
|
|
|
beginloop 0x12
|
|
dprint "GO TOWARDS\n"
|
|
if_chr_distance_lt 300, /*goto*/ 0x13
|
|
if_timer_gt 180, /*goto*/ 0x08
|
|
endloop 0x12
|
|
|
|
// Running towards player for 3 seconds - check if can still see player
|
|
label 0x08
|
|
if_chr_sees_player /*goto*/ 0x31
|
|
goto_first 0x04
|
|
|
|
label 0x31
|
|
goto_first 0xa5
|
|
|
|
// Close to player
|
|
label 0x13
|
|
do_special_animation -1
|
|
speak TARGET_CHR, 0x0a1f, 0x12e2, CHANNEL_6, COLOR_04_ORANGE // "Take this; you should find it useful!"
|
|
give_object_to_chr OBJ_PROXYMINE, TARGET_CHR
|
|
|
|
beginloop 0x14
|
|
if_sound_finished CHANNEL_6, /*goto*/ 0x31
|
|
endloop 0x14
|
|
|
|
label 0x31
|
|
stop_chr
|
|
set_stage_flag STAGEFLAG_ELVIS_GAVE_PROXYMINE
|
|
goto_first 0x04
|
|
|
|
endfunction
|
|
|
|
func0405_unused:
|
|
jog_to_pad 0x0107
|
|
beginloop 0x06
|
|
endloop 0x06
|
|
|
|
endfunction
|
|
|
|
func0417_init_robot:
|
|
set_accuracy 40
|
|
set_self_flag_bank3 CHRFLAG3_00020000
|
|
set_chr_health CHR_SELF, 250
|
|
set_function CHR_SELF, FUNC_ROBOT
|
|
endfunction
|
|
|
|
func0418_robot:
|
|
set_onshot_function FUNC_ROBOT
|
|
label 0x66
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x11
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x11
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x08
|
|
goto_next 0x04
|
|
label 0x08
|
|
yield
|
|
damage_chr CHR_SELF, 18
|
|
goto_first 0x66
|
|
|
|
beginloop 0x04
|
|
dprint "PART 1\n"
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x0d
|
|
if_target_chr_in_sight /*goto*/ 0x0d
|
|
call_rng
|
|
if_rand_gt 5, /*goto*/ 0x31
|
|
if_sound_finished CHANNEL_5, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
|
|
// Make random noise
|
|
label 0x08
|
|
call_rng
|
|
if_rand_lt 86, /*goto*/ 0x0b
|
|
if_rand_lt 172, /*goto*/ 0x0c
|
|
assign_sound 0x046a, CHANNEL_5
|
|
play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01
|
|
goto_next 0x31
|
|
label 0x0b
|
|
assign_sound 0x046b, CHANNEL_5
|
|
play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01
|
|
goto_next 0x31
|
|
label 0x0c
|
|
assign_sound 0x046c, CHANNEL_5
|
|
play_sound_from_entity CHANNEL_5, CHR_SELF, 0x0bb8, 0x1770, 0x01
|
|
label 0x31
|
|
endloop 0x04
|
|
|
|
// Alerted
|
|
label 0x0d
|
|
set_group_alertness 100
|
|
restart_timer
|
|
if_chr_distance_lt 300, /*goto*/ 0x31
|
|
if_chr_distance_gt 1000, /*goto*/ 0x15
|
|
if_target_chr_in_sight /*goto*/ 0x13
|
|
|
|
// Distance > 1000 or not in sight
|
|
label 0x15
|
|
try_run_to_target_chr_with_hand_up /*goto*/ 0x08
|
|
|
|
// Distance < 300
|
|
label 0x31
|
|
stop_chr
|
|
|
|
label 0x08
|
|
if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x0a
|
|
say_quip CHR_JOANNA, 0x1f, 0xff, 0x02, 0xff, BANK_1, 0x00, 0x00
|
|
set_self_flag_bankx CHRFLAG0_00002000, BANK_0
|
|
|
|
beginloop 0x0a
|
|
dprint "PART 2\n"
|
|
if_timer_gt 180, /*goto*/ 0x08
|
|
if_chr_distance_gt 1000, /*goto*/ 0x15
|
|
dprint "PART 2\n"
|
|
if_target_chr_in_sight /*goto*/ 0x13
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_target_chr_in_sight /*goto*/ 0x13
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
label 0x15
|
|
endloop 0x0a
|
|
|
|
// Player in sight
|
|
label 0x13
|
|
set_target_chr CHR_P1P2
|
|
restart_timer
|
|
dprint "PART 3a\n"
|
|
try_aim_and_shoot_thing1 0x0200, 0x0000, /*goto*/ 0x0e
|
|
goto_first 0x04
|
|
|
|
beginloop 0x0e
|
|
if_chr_stopped /*goto*/ 0x08
|
|
endloop 0x0e
|
|
|
|
label 0x08
|
|
goto_first 0x0d
|
|
|
|
label 0x11
|
|
assign_sound 0x1aec, CHANNEL_6
|
|
play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* Assigned to two stripes guards.
|
|
*/
|
|
func0414_spawner:
|
|
set_self_flag_bank3 CHRFLAG3_00000002
|
|
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_sees_player /*goto*/ 0x0a
|
|
// Room 0x0029 is the skedar shuttle area
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0029, /*goto*/ 0x0a
|
|
reloop 0x06
|
|
|
|
label 0x0a
|
|
dprint "HEARSPAWN\n"
|
|
label 0x31
|
|
if_never_been_onscreen /*goto*/ 0x52
|
|
dprint "NEVER VISFAIL\n"
|
|
if_chr_sees_player /*goto*/ 0x0a
|
|
endloop 0x06
|
|
|
|
label 0x0a
|
|
set_function CHR_SELF, GFUNC_ALERTED
|
|
|
|
label 0x52
|
|
dprint "CHECK DUPE\n"
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x52
|
|
set_function CHR_SELF, FUNC_SPAWNER
|
|
|
|
label 0x52
|
|
dprint "CREATE SPAWN\n"
|
|
try_spawn_clone2 CHR_SELF, GFUNC_ALERTED, 0x00000000, /*goto*/ 0x31
|
|
dprint "CREATE FAIL\n"
|
|
set_function CHR_SELF, FUNC_SPAWNER
|
|
|
|
label 0x31
|
|
yield
|
|
set_function CHR_SELF, FUNC_SPAWNER
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0419_unused:
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0422_hide:
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_UNEXPLODABLE
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func041a_pres_clone:
|
|
set_self_flag_bank3 CHRFLAG3_00020000
|
|
set_self_flag_bank3 CHRFLAG3_00080000
|
|
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_alertness 99, OPERATOR_GREATER_THAN, /*goto*/ 0x31
|
|
if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x08
|
|
if_target_chr_in_sight /*goto*/ 0x31
|
|
label 0x08
|
|
endloop 0x06
|
|
|
|
// Alert, or player in sight and looking at clone
|
|
label 0x31
|
|
run_to_pad 0x002c
|
|
|
|
beginloop 0x0a
|
|
if_chr_stopped /*goto*/ 0x31
|
|
endloop 0x0a
|
|
|
|
label 0x31
|
|
stop_chr
|
|
|
|
label 0xa5
|
|
animation ANIM_COWER_0229, -1, -1, 0x100a, CHR_SELF, 2
|
|
|
|
beginloop 0x10
|
|
if_chr_stopped /*goto*/ 0x31
|
|
endloop 0x10
|
|
|
|
label 0x31
|
|
goto_first 0xa5
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func041b_init_president:
|
|
set_self_flag_bank3 CHRFLAG3_00080000
|
|
set_chr_health CHR_SELF, 300
|
|
set_shield 0
|
|
set_function CHR_SELF, FUNC_PRESIDENT_WAITING
|
|
endfunction
|
|
|
|
func041c_president_waiting:
|
|
set_onshot_function FUNC_PRESIDENT_WAITING
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x08
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x08
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
|
|
// Dying
|
|
label 0x08
|
|
set_onshot_function GFUNC_IDLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x31
|
|
stop_chr
|
|
yield
|
|
|
|
// Wait until trigger and can see player
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_stage_flag_eq STAGEFLAG_TRIGGER_PRESIDENT_RUNNING, TRUE, /*goto*/ 0x31
|
|
goto_first 0x06
|
|
|
|
label 0x31
|
|
if_chr_sees_player /*goto*/ 0x31
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
set_onshot_function FUNC_PRESIDENT_RUNNING
|
|
set_function CHR_SELF, FUNC_PRESIDENT_RUNNING
|
|
endfunction
|
|
|
|
func041d_president_running:
|
|
set_self_flag_bank3 CHRFLAG3_01000000
|
|
set_alertness 100
|
|
set_onshot_function FUNC_PRESIDENT_RUNNING
|
|
dprint "RESTART\n"
|
|
yield
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x08
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x08
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
|
|
// Dying
|
|
label 0x08
|
|
set_onshot_function GFUNC_IDLE
|
|
restart_timer
|
|
|
|
beginloop 0x9c
|
|
dprint "KILLED\n"
|
|
if_timer_gt 15, /*goto*/ 0x08
|
|
endloop 0x9c
|
|
|
|
label 0x08
|
|
assign_sound 0x1abf, CHANNEL_6
|
|
play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01
|
|
set_onshot_function GFUNC_IDLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Alive
|
|
label 0x31
|
|
dprint "b4 shield check\n"
|
|
if_just_injured CHR_SELF, /*goto*/ 0x08
|
|
goto_next 0x9d
|
|
|
|
// Injured
|
|
label 0x08
|
|
restart_timer
|
|
assign_sound 0x1ac2, CHANNEL_6
|
|
play_sound_from_entity CHANNEL_6, CHR_SELF, 0x0bb8, 0x1770, 0x01
|
|
|
|
beginloop 0x9e
|
|
dprint "INJURED\n"
|
|
if_num_times_shot_lt 1, /*goto*/ 0x08
|
|
if_timer_lt 20, /*goto*/ 0x08
|
|
label 0x08
|
|
if_chr_stopped /*goto*/ 0x9d
|
|
endloop 0x9e
|
|
|
|
// Main logic
|
|
label 0x9d
|
|
stop_chr
|
|
restart_timer
|
|
|
|
beginloop 0x9f
|
|
dprint "WAIT\n"
|
|
// Room 0x0014 = UFO area
|
|
// Yes, checking this 5 times is unnecessary
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
dprint "target\n"
|
|
if_chr_sees_player /*goto*/ 0x08
|
|
goto_next 0xa0
|
|
|
|
label 0x08
|
|
if_timer_gt 1250, /*goto*/ 0x31
|
|
if_chr_distance_gt 200, /*goto*/ 0xa0
|
|
endloop 0x9f
|
|
|
|
// 20.8 seconds passed
|
|
// Pointless RNG check
|
|
label 0x31
|
|
call_rng
|
|
if_rand_lt 64, /*goto*/ 0x31
|
|
goto_first 0x9d
|
|
label 0x31
|
|
goto_first 0x9d
|
|
|
|
// Sees player
|
|
label 0x08
|
|
goto_first 0x9d
|
|
|
|
// Can't see player, or distance > 200
|
|
label 0xa0
|
|
restart_timer
|
|
label 0x31
|
|
if_chr_distance_gt 300, /*goto*/ 0x31
|
|
try_run_to_target_chr_with_hand_up /*goto*/ 0xa1
|
|
label 0x31
|
|
try_run_to_target_chr /*goto*/ 0xa1
|
|
|
|
beginloop 0xa1
|
|
dprint "FOLLOW\n"
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_distance_lt 100, /*goto*/ 0xa2
|
|
if_chr_stopped /*goto*/ 0xa2
|
|
if_timer_gt 360, /*goto*/ 0x31
|
|
endloop 0xa1
|
|
|
|
// 6 seconds passed while running
|
|
label 0x31
|
|
goto_first 0xa0
|
|
|
|
// Unreachable
|
|
label 0x08
|
|
goto_first 0xa0
|
|
|
|
// Next to player
|
|
label 0xa2
|
|
goto_first 0x9d
|
|
|
|
// Unreachable
|
|
label 0xa3
|
|
try_run_to_target_chr /*goto*/ 0xa4
|
|
|
|
// Unreachable
|
|
beginloop 0xa4
|
|
dprint "RUNNFO\n"
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0014, /*goto*/ 0xa5
|
|
endloop 0xa4
|
|
|
|
// Unreachable
|
|
label 0xa6
|
|
goto_first 0x9d
|
|
|
|
// Jo is near UFO
|
|
label 0xa5
|
|
run_to_pad 0x0105
|
|
|
|
beginloop 0x0b
|
|
if_chr_stopped /*goto*/ 0x08
|
|
endloop 0x0b
|
|
|
|
label 0x08
|
|
stop_chr
|
|
set_chr_alliance CHR_SELF, 0x80
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
if_stage_flag_eq STAGEFLAG_PRESIDENT_RESCUED, TRUE, /*goto*/ 0x31
|
|
message TARGET_CHR, 0x0a19 // "President has been rescued."
|
|
set_stage_flag STAGEFLAG_PRESIDENT_RESCUED
|
|
label 0x31
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100e_check_robots_left:
|
|
beginloop 0x06
|
|
if_chr_death_animation_finished CHR_ROBOT1, /*goto*/ 0x31
|
|
if_chr_dying CHR_ROBOT1, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_ROBOT1, /*goto*/ 0x31
|
|
if_chr_in_room CHR_ROBOT1, 0x00, 0x004a, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT1, 0x00, 0x004b, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT1, 0x00, 0x004c, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT1, 0x00, 0x004d, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
label 0x08
|
|
reloop 0x06
|
|
|
|
label 0x31
|
|
if_chr_death_animation_finished CHR_ROBOT2, /*goto*/ 0x31
|
|
if_chr_dying CHR_ROBOT2, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_ROBOT2, /*goto*/ 0x31
|
|
if_chr_in_room CHR_ROBOT2, 0x00, 0x004a, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT2, 0x00, 0x004b, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT2, 0x00, 0x004c, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT2, 0x00, 0x004d, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
label 0x08
|
|
reloop 0x06
|
|
|
|
label 0x31
|
|
if_chr_death_animation_finished CHR_ROBOT3, /*goto*/ 0x31
|
|
if_chr_dying CHR_ROBOT3, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_ROBOT3, /*goto*/ 0x31
|
|
if_chr_in_room CHR_ROBOT3, 0x00, 0x004a, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT3, 0x00, 0x004b, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT3, 0x00, 0x004c, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT3, 0x00, 0x004d, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
label 0x08
|
|
reloop 0x06
|
|
|
|
label 0x31
|
|
if_chr_death_animation_finished CHR_ROBOT4, /*goto*/ 0x31
|
|
if_chr_dying CHR_ROBOT4, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_ROBOT4, /*goto*/ 0x31
|
|
if_chr_in_room CHR_ROBOT4, 0x00, 0x004a, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT4, 0x00, 0x004b, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT4, 0x00, 0x004c, /*goto*/ 0x08
|
|
if_chr_in_room CHR_ROBOT4, 0x00, 0x004d, /*goto*/ 0x08
|
|
goto_next 0x31
|
|
label 0x08
|
|
reloop 0x06
|
|
|
|
label 0x31
|
|
if_stage_flag_eq STAGEFLAG_TRENT_RUNNING, TRUE, /*goto*/ 0x31
|
|
goto_first 0x06
|
|
|
|
label 0x31
|
|
set_stage_flag STAGEFLAG_TRIGGER_PRESIDENT_RUNNING
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func041e_trent_waiting:
|
|
set_accuracy 0
|
|
set_self_flag_bank3 CHRFLAG3_00000040
|
|
set_shield 100
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000
|
|
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_sees_player /*goto*/ 0x08
|
|
endloop 0x06
|
|
|
|
label 0x08
|
|
restart_timer
|
|
speak CHR_P1P2, 0x0a18, 0x12ca, CHANNEL_6, COLOR_05_GREEN // "You'll never save him now!"
|
|
animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2
|
|
|
|
beginloop 0x0a
|
|
if_timer_gt 120, /*goto*/ 0x08
|
|
endloop 0x0a
|
|
|
|
label 0x08
|
|
set_function CHR_SELF, FUNC_TRENT_SHOOTING
|
|
endfunction
|
|
|
|
func041f_trent_shooting:
|
|
label 0x04
|
|
stop_chr
|
|
|
|
beginloop 0x06
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
try_unset_chr_flag_bank3_02000000 CHR_SELF, /*goto*/ 0x31
|
|
if_target_chr_in_sight /*goto*/ 0x08
|
|
endloop 0x06
|
|
|
|
label 0x31
|
|
set_function CHR_SELF, FUNC_TRENT_RUNNING
|
|
|
|
label 0x08
|
|
label 0xa8
|
|
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0xa7
|
|
label 0xa7
|
|
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
|
|
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x0a
|
|
goto_next 0x31
|
|
|
|
// Shoot worked
|
|
beginloop 0x0a
|
|
if_chr_stopped /*goto*/ 0x08
|
|
endloop 0x0a
|
|
|
|
label 0x08
|
|
goto_next 0x0b
|
|
|
|
// Unreachable
|
|
if_chr_dying TARGET_CHR, /*goto*/ 0x0b
|
|
goto_first 0x04
|
|
|
|
// Shoot failed
|
|
label 0x31
|
|
goto_first 0x04
|
|
|
|
label 0x0b
|
|
restart_timer
|
|
animation ANIM_TALKING_0231, 0, -1, 0x1010, CHR_SELF, 2
|
|
|
|
beginloop 0x0c
|
|
if_timer_gt 120, /*goto*/ 0x08
|
|
endloop 0x0c
|
|
|
|
label 0x08
|
|
set_function CHR_SELF, FUNC_TRENT_RUNNING
|
|
endfunction
|
|
|
|
func0420_trent_running:
|
|
set_self_flag_bank3 CHRFLAG3_00080000
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_stage_flag STAGEFLAG_TRENT_RUNNING
|
|
restart_timer
|
|
run_to_pad 0x0027
|
|
|
|
beginloop 0x0a
|
|
if_timer_gt 300, /*goto*/ 0x31
|
|
endloop 0x0a
|
|
|
|
label 0x31
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_sees_player /*goto*/ 0x31
|
|
goto_next 0x08
|
|
|
|
label 0x31
|
|
if_chr_stopped /*goto*/ 0x08
|
|
goto_first 0x0a
|
|
|
|
// Player not in sight
|
|
label 0x08
|
|
if_within_units_of_sight 30, /*goto*/ 0x31
|
|
goto_next 0x08
|
|
|
|
label 0x31
|
|
goto_first 0x0a
|
|
|
|
// Player definitely not in sight
|
|
label 0x08
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100f_check_end_level:
|
|
beginloop 0x0a
|
|
if_all_objectives_complete /*goto*/ 0x08
|
|
endloop 0x0a
|
|
|
|
label 0x08
|
|
restart_timer
|
|
|
|
beginloop 0x0b
|
|
if_timer_gt 120, /*goto*/ 0x31
|
|
endloop 0x0b
|
|
|
|
label 0x31
|
|
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31
|
|
if_chr_dying CHR_JOANNA, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_JOANNA, /*goto*/ 0x31
|
|
goto_next 0x08
|
|
|
|
label 0x31
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31
|
|
if_chr_dying CHR_VELVET, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_VELVET, /*goto*/ 0x31
|
|
|
|
// Jo or Velvet alive
|
|
label 0x08
|
|
if_chr_death_animation_finished CHR_PRESIDENT, /*goto*/ 0x32
|
|
if_chr_dying CHR_PRESIDENT, /*goto*/ 0x32
|
|
if_chr_unloaded CHR_PRESIDENT, /*goto*/ 0x32
|
|
set_function CHR_PRESIDENT, GFUNC_STOP_AND_IDLE
|
|
|
|
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x31
|
|
if_chr_dying CHR_JOANNA, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_JOANNA, /*goto*/ 0x31
|
|
goto_next 0x08
|
|
|
|
// Both players dead
|
|
label 0x31
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x31
|
|
if_chr_dying CHR_VELVET, /*goto*/ 0x31
|
|
if_chr_unloaded CHR_VELVET, /*goto*/ 0x31
|
|
goto_next 0x08
|
|
|
|
label 0x31
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Mission complete
|
|
label 0x08
|
|
set_invincible CHR_JOANNA
|
|
set_function CHR_SELF, FUNC_OUTRO
|
|
|
|
// President dead
|
|
label 0x32
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* Assigned to 4 stripes and 2 blondes near the starting area.
|
|
*/
|
|
func0421_starting_area_guard:
|
|
label 0x0a
|
|
set_return_function CHR_SELF, GFUNC_UNALERTED
|
|
set_function CHR_SELF, GFUNC_SEARCH_FOR_PLAYER
|
|
endfunction
|
|
|
|
func1010_set_cave_lights:
|
|
yield
|
|
set_lights_state 0x0064, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0063, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0062, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0061, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0060, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x005f, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x005e, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x005d, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x005c, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x005b, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x005a, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0059, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0053, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0058, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0056, 0x01, 0x06, 0x00, 0x00
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1012_give_medicalscanner:
|
|
yield
|
|
if_difficulty_gt DIFF_A, /*goto*/ 0x31
|
|
give_object_to_chr OBJ_MEDICALSCANNER, CHR_JOANNA
|
|
label 0x31
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1013_setup_rtracker:
|
|
yield
|
|
set_object_flag_bank2 OBJ_PROXYMINE, OBJECTFLAG2_RTRACKED_BLUE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1016_hide_hoverbike:
|
|
yield
|
|
if_eeprom_flag_is_set EEPROMFLAG_CRASHSITE_BIKE, /*goto*/ 0x08
|
|
hide_object OBJ_HOVERBIKE
|
|
label 0x08
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1014_setup_skedar_shuttle:
|
|
yield
|
|
show_object OBJ_SKEDAR_SHUTTLE
|
|
set_object_flag_bank2 OBJ_SKEDAR_SHUTTLE, OBJECTFLAG2_00000010
|
|
set_object_part_visible OBJ_SKEDAR_SHUTTLE, FALSE
|
|
object_do_animation 0x0486, OBJ_SKEDAR_SHUTTLE, 0x01ff, 0xff
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1415_setup_lighting:
|
|
yield
|
|
set_lighting 0x0001, 0x05, 0x01
|
|
set_lighting 0x0001, 0x06, 0x01
|
|
set_lighting 0x0002, 0x05, 0x01
|
|
set_lighting 0x0002, 0x06, 0x01
|
|
set_lighting 0x0003, 0x06, 0x01
|
|
set_lighting 0x0004, 0x06, 0x01
|
|
set_lighting 0x0005, 0x06, 0x01
|
|
set_lighting 0x0006, 0x05, 0x01
|
|
set_lighting 0x0006, 0x06, 0x01
|
|
set_lighting 0x0008, 0x06, 0x01
|
|
set_lighting 0x0009, 0x05, 0x01
|
|
set_lighting 0x0009, 0x06, 0x01
|
|
set_lighting 0x000a, 0x05, 0x01
|
|
set_lighting 0x000a, 0x06, 0x01
|
|
set_lighting 0x000b, 0x05, 0x01
|
|
set_lighting 0x000b, 0x06, 0x01
|
|
set_lighting 0x000c, 0x05, 0x01
|
|
set_lighting 0x000c, 0x06, 0x01
|
|
set_lighting 0x000d, 0x05, 0x01
|
|
set_lighting 0x000d, 0x06, 0x01
|
|
set_lighting 0x000e, 0x05, 0x01
|
|
set_lighting 0x000e, 0x06, 0x01
|
|
set_lighting 0x000f, 0x05, 0x01
|
|
set_lighting 0x000f, 0x06, 0x01
|
|
set_lighting 0x0010, 0x05, 0x01
|
|
set_lighting 0x0010, 0x06, 0x01
|
|
set_lighting 0x0011, 0x05, 0x01
|
|
set_lighting 0x0011, 0x06, 0x01
|
|
set_lighting 0x0012, 0x05, 0x01
|
|
set_lighting 0x0012, 0x06, 0x01
|
|
set_lighting 0x0013, 0x05, 0x01
|
|
set_lighting 0x0013, 0x06, 0x01
|
|
set_lighting 0x0014, 0x05, 0x01
|
|
set_lighting 0x0014, 0x06, 0x01
|
|
set_lighting 0x0015, 0x05, 0x01
|
|
set_lighting 0x0015, 0x06, 0x01
|
|
set_lighting 0x0016, 0x05, 0x01
|
|
set_lighting 0x0016, 0x06, 0x01
|
|
set_lighting 0x0018, 0x05, 0x01
|
|
set_lighting 0x0018, 0x06, 0x01
|
|
set_lighting 0x0019, 0x05, 0x01
|
|
set_lighting 0x0019, 0x06, 0x01
|
|
set_lighting 0x001a, 0x06, 0x01
|
|
set_lighting 0x001b, 0x05, 0x01
|
|
set_lighting 0x001b, 0x06, 0x01
|
|
set_lighting 0x001c, 0x05, 0x01
|
|
set_lighting 0x001c, 0x06, 0x01
|
|
set_lighting 0x001d, 0x06, 0x01
|
|
set_lighting 0x001e, 0x05, 0x01
|
|
set_lighting 0x001e, 0x06, 0x01
|
|
set_lighting 0x0025, 0x05, 0x01
|
|
set_lighting 0x0025, 0x06, 0x01
|
|
set_lighting 0x0026, 0x05, 0x01
|
|
set_lighting 0x0026, 0x06, 0x01
|
|
set_lighting 0x0027, 0x05, 0x01
|
|
set_lighting 0x0027, 0x06, 0x01
|
|
set_lighting 0x0028, 0x05, 0x01
|
|
set_lighting 0x0028, 0x06, 0x01
|
|
set_lighting 0x0029, 0x05, 0x01
|
|
set_lighting 0x0029, 0x06, 0x01
|
|
set_lighting 0x002a, 0x05, 0x01
|
|
set_lighting 0x002a, 0x06, 0x01
|
|
set_lighting 0x002b, 0x05, 0x01
|
|
set_lighting 0x002b, 0x06, 0x01
|
|
set_lighting 0x002c, 0x05, 0x01
|
|
set_lighting 0x002c, 0x06, 0x01
|
|
set_lighting 0x002e, 0x05, 0x01
|
|
set_lighting 0x002e, 0x06, 0x01
|
|
set_lighting 0x002f, 0x05, 0x01
|
|
set_lighting 0x002f, 0x06, 0x01
|
|
set_lighting 0x0030, 0x05, 0x01
|
|
set_lighting 0x0030, 0x06, 0x01
|
|
set_lighting 0x0031, 0x05, 0x01
|
|
set_lighting 0x0031, 0x06, 0x01
|
|
set_lighting 0x0032, 0x05, 0x01
|
|
set_lighting 0x0032, 0x06, 0x01
|
|
set_lighting 0x0033, 0x05, 0x01
|
|
set_lighting 0x0033, 0x06, 0x01
|
|
set_lighting 0x0035, 0x05, 0x01
|
|
set_lighting 0x0035, 0x06, 0x01
|
|
set_lighting 0x0036, 0x05, 0x01
|
|
set_lighting 0x0036, 0x06, 0x01
|
|
set_lighting 0x0038, 0x05, 0x01
|
|
set_lighting 0x0038, 0x06, 0x01
|
|
set_lighting 0x003a, 0x05, 0x01
|
|
set_lighting 0x003a, 0x06, 0x01
|
|
set_lighting 0x003b, 0x05, 0x01
|
|
set_lighting 0x003b, 0x06, 0x01
|
|
set_lighting 0x003c, 0x05, 0x01
|
|
set_lighting 0x003c, 0x06, 0x01
|
|
set_lighting 0x003d, 0x05, 0x01
|
|
set_lighting 0x003d, 0x06, 0x01
|
|
set_lighting 0x003e, 0x06, 0x01
|
|
set_lighting 0x003f, 0x05, 0x01
|
|
set_lighting 0x0045, 0x05, 0x01
|
|
set_lighting 0x0065, 0x05, 0x01
|
|
set_lighting 0x0065, 0x06, 0x01
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
functions:
|
|
register_function func1400_setup_counterop 0x1400
|
|
register_function func1001_objectives_failed_msg 0x1001
|
|
register_function func1002_intro 0x1002
|
|
register_function func1003_msg_therestheescapepod 0x1003
|
|
register_function func1004_msg_maybetheresabeacon 0x1004
|
|
register_function func1005_msg_thejamming 0x1005
|
|
register_function func1006_msg_elvisbeable 0x1006
|
|
register_function func1008_escapepod 0x1008
|
|
register_function func1009_check_shuttle_destroyed 0x1009
|
|
register_function func100a_check_president_dead 0x100a
|
|
register_function func100b_check_clone_dead 0x100b
|
|
register_function func100c_spawn_dd_guards 0x100c
|
|
register_function func100e_check_robots_left 0x100e
|
|
register_function func100f_check_end_level 0x100f
|
|
register_function func1010_set_cave_lights 0x1010
|
|
register_function func1011_setup_snow 0x1011
|
|
register_function func1012_give_medicalscanner 0x1012
|
|
register_function func1013_setup_rtracker 0x1013
|
|
register_function func1014_setup_skedar_shuttle 0x1014
|
|
register_function func1415_setup_lighting 0x1415
|
|
register_function func1016_hide_hoverbike 0x1016
|
|
|
|
register_function func1002_intro 0x0401
|
|
register_function func0402_outro 0x0402
|
|
register_function func0403_init_elvis 0x0403
|
|
register_function func0404_elvis 0x0404
|
|
register_function func0405_unused 0x0405
|
|
|
|
register_function func1002_intro 0x0c00
|
|
register_function func0402_outro_from_menu 0x0c01
|
|
|
|
register_function func0406_init_stripes 0x0406
|
|
register_function func0407_init_blonde 0x0407
|
|
register_function func0408_start_path00 0x0408
|
|
register_function func0409_start_path01 0x0409
|
|
register_function func040a_start_path02 0x040a
|
|
register_function func040b_start_path03 0x040b
|
|
register_function func040c_start_path04 0x040c
|
|
register_function func040d_start_path05 0x040d
|
|
register_function func040e_start_path06 0x040e
|
|
register_function func040f_start_path07 0x040f
|
|
register_function func0410_start_path08 0x0410
|
|
register_function func0411_start_path09 0x0411
|
|
register_function func0412_start_path10 0x0412
|
|
register_function func0413_start_path11 0x0413
|
|
register_function func0414_spawner 0x0414
|
|
register_function func0415_unused 0x0415
|
|
register_function func0416_spawned_guard 0x0416
|
|
register_function func0417_init_robot 0x0417
|
|
register_function func0418_robot 0x0418
|
|
register_function func0419_unused 0x0419
|
|
register_function func041a_pres_clone 0x041a
|
|
register_function func041c_president_waiting 0x041c
|
|
register_function func041b_init_president 0x041b
|
|
register_function func041d_president_running 0x041d
|
|
register_function func041e_trent_waiting 0x041e
|
|
register_function func041f_trent_shooting 0x041f
|
|
register_function func0420_trent_running 0x0420
|
|
register_function func0421_starting_area_guard 0x0421
|
|
register_function func0422_hide 0x0422
|
|
endfunctions
|
|
|
|
.align 4
|