forked from Ports/perfect_dark
3913 lines
162 KiB
ArmAsm
3913 lines
162 KiB
ArmAsm
#
|
|
# Skedar Ruins
|
|
#
|
|
|
|
.set HEADERLEN, 0x20
|
|
.include "asm/include/setup.inc"
|
|
|
|
// Characters
|
|
.set CHR_KING1, 0x33
|
|
.set CHR_KING_SKEDAR_SPAWNER, 0x34
|
|
.set CHR_KING_MINISKEDAR_SPAWNER, 0x35
|
|
.set CHR_ELVIS, 0x36
|
|
.set CHR_KING2, 0x3b
|
|
|
|
// Objects
|
|
.set OBJ_PILLAR1, 0x01
|
|
.set OBJ_PILLAR2, 0x02
|
|
.set OBJ_PILLAR3, 0x03
|
|
.set OBJ_BRIDGE, 0x05
|
|
.set OBJ_TARGETAMP_JOANNA, 0x08
|
|
.set OBJ_ALTAR, 0x0b
|
|
.set OBJ_SPIKE_ML, 0x13
|
|
.set OBJ_SPIKE_MR, 0x14
|
|
.set OBJ_SPIKE_BL, 0x15
|
|
.set OBJ_SPIKE_BR, 0x16
|
|
.set OBJ_SPIKE_T, 0x17
|
|
.set OBJ_SPIKE_SHAD_ML, 0x19
|
|
.set OBJ_SPIKE_SHAD_MR, 0x1a
|
|
.set OBJ_SPIKE_SHAD_BL, 0x1b
|
|
.set OBJ_SPIKE_SHAD_BR, 0x1c
|
|
.set OBJ_SPIKE_SHAD_T, 0x1d
|
|
.set OBJ_SPIKE_NOSHAD_ML, 0x1e
|
|
.set OBJ_SPIKE_NOSHAD_MR, 0x1f
|
|
.set OBJ_SPIKE_NOSHAD_BL, 0x20
|
|
.set OBJ_SPIKE_NOSHAD_BR, 0x21
|
|
.set OBJ_SPIKE_NOSHAD_T, 0x22
|
|
.set OBJ_TARGETAMP_VELVET, 0x35
|
|
.set OBJ_PHOENIX1, 0x42
|
|
.set OBJ_PHOENIX2, 0x43
|
|
.set OBJ_REMOTEMINE, 0x44
|
|
.set OBJ_ALTAR_FALCON, 0x47
|
|
.set OBJ_ALTAR_DEVASTATOR, 0x48
|
|
.set OBJ_ALTAR_CALLISTO, 0x49
|
|
.set OBJ_ALTAR_MAULER, 0x4a
|
|
.set OBJ_ALTAR_SLAYER, 0x4b
|
|
.set OBJ_PUZZLEROCK, 0x4c
|
|
.set OBJ_BUDDYBRIDGE, 0x50
|
|
.set OBJ_BUDDYBARRICADE, 0x51
|
|
|
|
// Stage flags
|
|
.set STAGEFLAG_VELVET_THREW_FIRST_BUG, 0x00000001
|
|
.set STAGEFLAG_VELVET_THREW_SECOND_BUG, 0x00000002
|
|
.set STAGEFLAG_VELVET_THREW_THIRD_BUG, 0x00000004
|
|
.set STAGEFLAG_VELVET_BUGS_WASTED, 0x00000008
|
|
.set STAGEFLAG_JOANNA_BUGS_WASTED, 0x00000010
|
|
.set STAGEFLAG_IN_INTRO, 0x00000020
|
|
.set STAGEFLAG_IN_OUTRO, 0x00000040
|
|
.set STAGEFLAG_AI_BUDDY_EXISTS, 0x00000080
|
|
.set STAGEFLAG_PILLAR1_MARKED, 0x00000100
|
|
.set STAGEFLAG_PILLAR2_MARKED, 0x00000200
|
|
.set STAGEFLAG_PILLAR3_MARKED, 0x00000400
|
|
.set STAGEFLAG_BUG_WASTED, 0x00000800
|
|
.set STAGEFLAG_BRIDGE_EXTENDED, 0x00001000
|
|
.set STAGEFLAG_TRIGGER_SKEDAR_ARMY, 0x00002000
|
|
.set STAGEFLAG_ARMY_DEFEATED, 0x00004000
|
|
.set STAGEFLAG_CROSSED_RAVINE_WITHOUT_BRIDGE, 0x00008000
|
|
.set STAGEFLAG_TRIGGER_BRIDGE, 0x00010000
|
|
.set STAGEFLAG_JOANNA_THREW_FIRST_BUG, 0x00020000
|
|
.set STAGEFLAG_JOANNA_THREW_SECOND_BUG, 0x00040000
|
|
.set STAGEFLAG_JOANNA_THREW_THIRD_BUG, 0x00080000
|
|
.set STAGEFLAG_GRENADES_WASTED, 0x00100000
|
|
.set STAGEFLAG_ACCESSED_SANCTUM, 0x00200000
|
|
.set STAGEFLAG_KING_SKEDAR_CLONE_EXISTS, 0x00800000
|
|
.set STAGEFLAG_SPIKE1_DESTROYED, 0x01000000
|
|
.set STAGEFLAG_SPIKE2_DESTROYED, 0x02000000
|
|
.set STAGEFLAG_SPIKE3_DESTROYED, 0x04000000
|
|
.set STAGEFLAG_SPIKE4_DESTROYED, 0x08000000
|
|
.set STAGEFLAG_SPIKE5_DESTROYED, 0x10000000
|
|
.set STAGEFLAG_SPIKES_VULNERABLE, 0x20000000
|
|
.set STAGEFLAG_SPIKE_DESTROYED, 0x40000000
|
|
.set STAGEFLAG_KING_MINISKEDAR_CLONE_EXISTS, 0x80000000
|
|
|
|
// Functions
|
|
.set FUNC_INIT_UNARMED_SKEDAR, 0x0401
|
|
.set FUNC_UNARMED_SKEDAR, 0x0402
|
|
.set FUNC_INIT_MINISKEDAR, 0x0403
|
|
.set FUNC_MINISKEDAR, 0x0404
|
|
.set FUNC_PUZZLEROOM_MINISKEDAR_WAITING, 0x0405
|
|
.set FUNC_MINISKEDAR_SPAWNER, 0x0406
|
|
.set FUNC_INIT_CLOAKED_SKEDAR, 0x0407
|
|
.set FUNC_CLOAKED_SKEDAR, 0x0408
|
|
.set FUNC_REAPER_SLAYER_SKEDAR, 0x0409
|
|
.set FUNC_INIT_REAPER_SLAYER_SKEDAR, 0x040a
|
|
.set FUNC_MAULER_SKEDAR, 0x040b
|
|
.set FUNC_KING_WAITING, 0x040c
|
|
.set FUNC_KING_COMBAT, 0x040d
|
|
.set FUNC_KING_SKEDAR_SPAWNER, 0x040e
|
|
.set FUNC_UPDATE_SPIKE_STAGEFLAGS, 0x040f
|
|
.set FUNC_INIT_KING_SKEDAR_CLONE, 0x0410
|
|
.set FUNC_KING_MINISKEDAR_SPAWNER, 0x0411
|
|
.set FUNC_INIT_KING_MINISKEDAR_CLONE, 0x0412
|
|
.set FUNC_HIDE, 0x0413
|
|
.set FUNC_OUTRO, 0x0414
|
|
|
|
props:
|
|
briefing 0, 0x4201
|
|
briefing 1, 0x4200
|
|
briefing 2, 0x4202
|
|
briefing 3, 0x4203
|
|
|
|
beginobjective 0, 0x4205, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Identify temple targets"
|
|
complete_flags STAGEFLAG_PILLAR1_MARKED
|
|
complete_flags STAGEFLAG_PILLAR2_MARKED
|
|
complete_flags STAGEFLAG_PILLAR3_MARKED
|
|
fail_flags STAGEFLAG_BUG_WASTED
|
|
endobjective
|
|
|
|
beginobjective 1, 0x4206, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Activate bridge"
|
|
complete_flags STAGEFLAG_BRIDGE_EXTENDED
|
|
endobjective
|
|
|
|
beginobjective 2, 0x4207, DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Gain access to Inner Sanctum"
|
|
complete_flags STAGEFLAG_ACCESSED_SANCTUM
|
|
endobjective
|
|
|
|
beginobjective 3, 0x4208, DIFFBIT_PA | DIFFBIT_PD // "Destroy secret Skedar army"
|
|
complete_flags STAGEFLAG_ARMY_DEFEATED
|
|
endobjective
|
|
|
|
beginobjective 4, 0x4209, DIFFBIT_A | DIFFBIT_SA | DIFFBIT_PA | DIFFBIT_PD // "Assassinate Skedar leader"
|
|
complete_flags STAGEFLAG_SPIKE1_DESTROYED
|
|
complete_flags STAGEFLAG_SPIKE2_DESTROYED
|
|
complete_flags STAGEFLAG_SPIKE3_DESTROYED
|
|
complete_flags STAGEFLAG_SPIKE4_DESTROYED
|
|
complete_flags STAGEFLAG_SPIKE5_DESTROYED
|
|
fail_flags STAGEFLAG_GRENADES_WASTED
|
|
endobjective
|
|
|
|
chr 0x00000200, 0x05, 0x00a0, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x06, 0x00a1, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x07, 0x00a2, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00d9, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x08, 0x00a3, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00d9, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x17, 0x00a4, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 15, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x0017, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x09, 0x00a5, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00da, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x0a, 0x00a6, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00da, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x0b, 0x00a7, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00db, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x0c, 0x00a8, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00db, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x0d, 0x00a9, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00dc, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x0e, 0x00aa, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00dc, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x0f, 0x00ab, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00dd, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x10, 0x00ac, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00dd, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x1c, 0x00a4, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 15, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x001c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x18, 0x00ae, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 50, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x0018, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x19, 0x00af, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 50, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x0019, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1a, 0x00b0, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 50, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x001a, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x11, 0x00b1, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00de, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x12, 0x00b2, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00de, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x13, 0x00b3, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00de, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x14, 0x00b4, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00de, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x1b, 0x00b5, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 9, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x001b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1d, 0x00b6, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 9, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x001d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x15, 0x00b7, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00df, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x16, 0x00b8, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_CLOAKED_SKEDAR, 0x00df, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x1e, 0x00b9, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 9, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x001e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x1f, 0x00ba, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 9, 0x40002000, 0x00000010, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x001f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x23, 0x00bb, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_MINISKEDAR_SPAWNER, 0x00e0, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x24, 0x00bc, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_MINISKEDAR_SPAWNER, 0x00e1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x25, 0x00bd, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_MINISKEDAR_SPAWNER, 0x00e1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x26, 0x00be, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_PUZZLEROOM_MINISKEDAR_WAITING, -1, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x28, 0x00bf, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_MINISKEDAR_SPAWNER, 0x00e2, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x29, 0x00c0, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_MINISKEDAR_SPAWNER, 0x00e3, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000000, 0x2a, 0x00c2, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_MINISKEDAR_SPAWNER, 0x00e4, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00000200, 0x20, 0x00c3, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 30, 0x40002000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000500
|
|
weapon 0x0100, MODEL_CHRSKROCKET, 0x0020, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SLAYER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x21, 0x00c4, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 30, 0x40002000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000500
|
|
weapon 0x0100, MODEL_CHRSKROCKET, 0x0021, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SLAYER, 0x00ffffff, 0x00000000
|
|
chr 0x00000200, 0x22, 0x00c5, BODY_SKEDAR, HEAD_RANDOM, FUNC_INIT_REAPER_SLAYER_SKEDAR, -1, -1, 1000, 30, 0x40002000, 0x00000000, 0x02, 0x01, -1, 0, 0x02000a00
|
|
weapon 0x0100, MODEL_CHRSKMINIGUN, 0x0022, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_REAPER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x2c, 0x00c6, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x002c, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x2d, 0x00c7, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x002d, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x2e, 0x00c8, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x002e, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x2f, 0x00c9, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x002f, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x30, 0x00ca, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x0030, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x31, 0x00cb, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x0031, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000100, 0x32, 0x00cc, BODY_SKEDAR, HEAD_RANDOM, FUNC_MAULER_SKEDAR, -1, -1, 1000, 9, 0x04000000, 0x40000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x0032, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x33, 0x00cd, BODY_SKEDARKING, HEAD_RANDOM, FUNC_HIDE, -1, -1, 1000, 9, 0x04000000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_KINGSCEPTRE, 0x0033, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_ROCKETLAUNCHER_34, 0x00ffffff, 0x00000000
|
|
chr 0x00000000, 0x34, 0x00ce, BODY_SKEDAR, HEAD_RANDOM, FUNC_KING_SKEDAR_SPAWNER, -1, -1, 1000, 9, 0x00000004, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
ammocrate 0x0100, MODEL_CHRUZI, 0x0034, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, AMMOTYPE_FARSIGHT
|
|
chr 0x00000000, 0x35, 0x00cf, BODY_MINISKEDAR, HEAD_RANDOM, FUNC_KING_MINISKEDAR_SPAWNER, -1, -1, 1000, 9, 0x00000004, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00010000, 0x36, 0x00d9, BODY_ELVISWAISTCOAT, HEAD_ELVIS, FUNC_HIDE, -1, -1, 1000, 200, 0x00002000, 0x00300000, 0x10, 0x01, -1, 0, 0x00000000
|
|
chr 0x00004000, 0x37, 0x000f, BODY_SKEDAR, HEAD_RANDOM, FUNC_HIDE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00004000, 0x38, 0x0010, BODY_SKEDAR, HEAD_RANDOM, FUNC_HIDE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00004000, 0x39, 0x0011, BODY_SKEDAR, HEAD_RANDOM, FUNC_HIDE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00004000, 0x3a, 0x0012, BODY_SKEDAR, HEAD_RANDOM, FUNC_HIDE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
chr 0x00004000, 0x3b, 0x0018, BODY_SKEDARKING, HEAD_RANDOM, GFUNC_IDLE, 0x00d8, -1, 1000, 9, 0x00002000, 0x00000000, 0x02, 0x01, -1, 0, 0x00000000
|
|
weapon 0x0100, MODEL_KINGSCEPTRE, 0x003b, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_NONE, 0x00ffffff, 0x00000000
|
|
link_scenery 1, 0, 2
|
|
debris 0x0100, MODEL_SKCREV_UNEXP1, 0x00e5, 0x035005e8, 0x00304300, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
debris 0x0100, MODEL_SKCREV_EXP1, 0x00e6, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x44, 1
|
|
remote_mine 0x0100, MODEL_CHRPROXIMITYMINE, 0x00e6, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x21000000, 0x00000001, 0x00000000
|
|
link_scenery 1, 0, 2
|
|
door 0x0100, MODEL_SKTNL_UNEXP1, 0x00e7, 0x13500d00, 0x20304300, 0x40000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00010000, 0x03e80000, 0x03e80000, 0x00010000, 0x00000000, 0x00000080, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
object 0x0100, MODEL_SKTNL_EXP1, 0x00e8, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x4d, -2
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARLEFT, 0x013d, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARLEFT, 0x013e, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARLEFT, 0x013f, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARLEFT, 0x0140, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARRIGHT, 0x0141, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARRIGHT, 0x0142, 0x075005e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARRIGHT, 0x0143, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_PILLARRIGHT, 0x0144, 0x035004e8, 0x00104300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x19, 5
|
|
tag 0x1a, 5
|
|
tag 0x1b, 5
|
|
tag 0x1c, 5
|
|
tag 0x1d, 5
|
|
object 0x0100, MODEL_SK_FL_SHAD_ML, 0x014b, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_SHAD_MR, 0x014c, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_SHAD_BL, 0x014d, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_SHAD_BR, 0x014e, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_SHAD_T, 0x014a, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x1e, 5
|
|
tag 0x1f, 5
|
|
tag 0x20, 5
|
|
tag 0x21, 5
|
|
tag 0x22, 5
|
|
object 0x0100, MODEL_SK_FL_NOSHAD_ML, 0x014b, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_NOSHAD_MR, 0x014c, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_NOSHAD_BL, 0x014d, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_NOSHAD_BR, 0x014e, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_FL_NOSHAD_T, 0x014a, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x01, 3
|
|
tag 0x2a, 2
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN4, 0x0111, 0x035005e8, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x02, 3
|
|
tag 0x2b, 2
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010a, 0x035005e8, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x41, -1
|
|
tag 0x03, 3
|
|
tag 0x2c, 2
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010b, 0x035005e8, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x2d, 2
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010c, 0x035005e1, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x2e, 2
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN3, 0x010d, 0x035005e1, 0x80126300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x2f, 5
|
|
tag 0x30, 5
|
|
tag 0x31, 5
|
|
tag 0x32, 5
|
|
tag 0x33, 5
|
|
object 0x0019, MODEL_CHRREMOTEMINE, 0x00d5, 0x012204e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0019, MODEL_CHRREMOTEMINE, 0x010a, 0x012204e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0019, MODEL_CHRREMOTEMINE, 0x010b, 0x012204e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0019, MODEL_CHRREMOTEMINE, 0x010c, 0x012204e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0019, MODEL_CHRREMOTEMINE, 0x010d, 0x012204e8, 0x00086000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x27, -3
|
|
tag 0x28, -3
|
|
tag 0x29, -3
|
|
tag 0x3e, 1
|
|
object 0x0100, MODEL_SK_SUNSHAD1, 0x014f, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x3d, 1
|
|
object 0x0100, MODEL_SK_SUNSHAD2, 0x0150, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x4e, 2
|
|
tag 0x4f, 2
|
|
object 0x0100, MODEL_SK_SUNNOSHAD1, 0x014f, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_SUNNOSHAD2, 0x0150, 0x035204e8, 0x00384300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00eb, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00ec, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00ed, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00ee, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00ef, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f0, 0x10000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x09, 2
|
|
tag 0x0a, 2
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f1, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f2, 0x10000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000002, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x0d, 2
|
|
tag 0x0e, 2
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f3, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f4, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x45, 2
|
|
tag 0x46, 2
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f5, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f6, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x0f, 2
|
|
tag 0x10, 2
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f7, 0x10000000, 0x30000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f8, 0x10000000, 0x28000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000000, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x11, 2
|
|
tag 0x12, 2
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00f9, 0x10000000, 0x28000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_DOOR1, 0x00fa, 0x10000000, 0x30000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000e666, 0x00010000, 0x00001999, 0x00014000, 0x00000666, 0x00000000, 0x00000080, 0x0000012c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00000400, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x0c, 1
|
|
vent_fan 0x0100, MODEL_SK_UNDER_GENERATOR, 0x0126, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000444, 0x00000000, 0x00000002, 0x01000000
|
|
vent_fan 0x0100, MODEL_SK_UNDER_TRANS, 0x0127, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000444, 0x00000000, 0x00000002, 0x01000000
|
|
vent_fan 0x0100, MODEL_SK_UNDER_TRANS, 0x0128, 0x000204e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x00000000, 0x00000000, 0x00000444, 0x00000000, 0x00000002, 0x01000000
|
|
tag 0x4c, 1
|
|
object 0x00e6, MODEL_SKPUZZLEOBJECT, 0x012c, 0x010201e1, 0x00004100, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x05, 1
|
|
lift 0x0100, MODEL_SKEDARBRIDGE, 0x0135, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0135, 0x0134, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000471c, 0x00a6aaaa, 0x00000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x08, 1
|
|
object 0x0100, MODEL_TARGETAMP, 0x0001, 0x012405e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
rename_object -1, 0x3f, 0x4214, 0x4215, 0x4216, 0x4217, 0x4218, 0x0000, 0x0000 // "Obtain Target Amplifier."
|
|
tag 0x35, 1
|
|
object 0x0100, MODEL_TARGETAMP, 0x0001, 0x012405e1, 0x00004000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
rename_object -1, 0x3f, 0x4214, 0x4215, 0x4216, 0x4217, 0x4218, 0x0000, 0x0000 // "Obtain Target Amplifier."
|
|
tag 0x0b, 1
|
|
multimonitor 0x0019, MODEL_COMHUB, 0x0137, 0x00420002, 0x00000000, 0x00010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 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, 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, 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, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x03030300
|
|
tag 0x13, 1
|
|
object 0x0100, MODEL_SK_PLINTH_ML, 0x0146, 0x010405e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x14, 1
|
|
object 0x0100, MODEL_SK_PLINTH_MR, 0x0147, 0x010405e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x15, 1
|
|
object 0x0100, MODEL_SK_PLINTH_BL, 0x0149, 0x010405e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x16, 1
|
|
object 0x0100, MODEL_SK_PLINTH_BR, 0x0148, 0x010405e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x17, 1
|
|
object 0x0100, MODEL_SK_PLINTH_T, 0x0145, 0x010405e8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000bb8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_A51_CRATE1, 0x012d, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0xffff, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
object 0x0100, MODEL_A51_CRATE2, 0x012e, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0xffff, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
object 0x0100, MODEL_A51_CRATE3, 0x012f, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0xffff, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
object 0x0100, MODEL_A51_CRATE1, 0x0130, 0x00000101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
weapon 0x0100, MODEL_CHRMAULER, 0xffff, 0x00008000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
tag 0x23, 1
|
|
object 0x0019, MODEL_RUBBLE1, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x24, 1
|
|
object 0x0019, MODEL_RUBBLE2, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x25, 1
|
|
object 0x0019, MODEL_RUBBLE3, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x26, 1
|
|
object 0x0019, MODEL_RUBBLE4, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x37, 1
|
|
object 0x0019, MODEL_SK_JONRUBBLE3, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x38, 1
|
|
object 0x0019, MODEL_SK_JONRUBBLE4, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x39, 1
|
|
object 0x0019, MODEL_SK_JONRUBBLE5, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x3a, 1
|
|
object 0x0019, MODEL_SK_JONRUBBLE6, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x3b, 1
|
|
object 0x0019, MODEL_SK_JONRUBBLE3, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x3c, 1
|
|
object 0x0019, MODEL_RUBBLE3, 0xffff, 0x000215e1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010e, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN2, 0x010f, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
link_scenery 1, 0, 0
|
|
debris 0x0100, MODEL_SK_TEMPLECOLUMN2, 0x0110, 0x035005e1, 0x80106300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x36, 1
|
|
object 0x0100, MODEL_SK_SHUTTLE, 0xffff, 0x00021401, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x00fc, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x00fb, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x00fd, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x00fe, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0100, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x00ff, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0101, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x0102, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0104, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x0103, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0106, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x0105, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_BOT, 0x0107, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
door 0x0100, MODEL_SK_CRYOPOD1_TOP, 0x0108, 0x10000400, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, 0x0000eb68, 0x0000eb68, 0x0001aaaa, 0x00002aaa, 0x00002aaa, 0x00000004, 0x00000000, 0x00000384, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0x00000000, 0x00001100, 0x00000000, 0xff000000, 0x00000000, 0x00000000, 0x00000000
|
|
tag 0x47, 1
|
|
weapon 0x0100, MODEL_CHRFALCON2SCOPE, 0x00d6, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_FALCON2_SCOPE, 0x00ffffff, 0x00000000
|
|
tag 0x48, 1
|
|
weapon 0x0100, MODEL_CHRDEVASTATOR, 0x00d6, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_DEVASTATOR, 0x00ffffff, 0x00000000
|
|
tag 0x49, 1
|
|
weapon 0x0100, MODEL_CHRMAIANSMG, 0x00d6, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_CALLISTONTG, 0x00ffffff, 0x00000000
|
|
tag 0x4a, 1
|
|
weapon 0x0100, MODEL_CHRMAULER, 0x00d6, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_MAULER, 0x00ffffff, 0x00000000
|
|
tag 0x4b, 1
|
|
weapon 0x0100, MODEL_CHRSKROCKET, 0x00d6, 0x00100000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_SLAYER, 0x00ffffff, 0x00000000
|
|
tag 0x50, 2
|
|
tag 0x51, 2
|
|
object 0x0100, MODEL_BUDDYBRIDGE, 0x00ea, 0x035204e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
object 0x0100, MODEL_SK_TEMPLECOLUMN4, 0x0131, 0x035205e8, 0x00304300, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000
|
|
tag 0x3f, 1
|
|
shield 0x0100, MODEL_CHRSHIELD, 0x0151, 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 0x40, 1
|
|
shield 0x0100, MODEL_CHRSHIELD, 0x00ba, 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 0x42, 2
|
|
tag 0x43, 2
|
|
weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0032, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000
|
|
weapon 0x0100, MODEL_CHRMAIANPISTOL, 0x0032, 0x00100001, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000003e8, 0x00000000, 0x00000000, 0x0fff0000, WEAPON_PHOENIX, 0x00ffffff, 0x00000000
|
|
link_collectibles -1, -2
|
|
pad_effect PADEFFECT_SPARKS, 0x0112
|
|
pad_effect PADEFFECT_SPARKS, 0x0117
|
|
pad_effect PADEFFECT_SPARKS, 0x0113
|
|
pad_effect PADEFFECT_SPARKS, 0x0114
|
|
pad_effect PADEFFECT_SPARKS, 0x0115
|
|
pad_effect PADEFFECT_SPARKS, 0x0116
|
|
pad_effect PADEFFECT_SPARKS, 0x0118
|
|
pad_effect PADEFFECT_SPARKS, 0x0119
|
|
pad_effect PADEFFECT_SPARKS, 0x011a
|
|
pad_effect PADEFFECT_SPARKS, 0x011b
|
|
pad_effect PADEFFECT_SPARKS, 0x011c
|
|
pad_effect PADEFFECT_SPARKS, 0x011d
|
|
pad_effect PADEFFECT_SPARKS, 0x011e
|
|
pad_effect PADEFFECT_SPARKS, 0x011f
|
|
pad_effect PADEFFECT_SPARKS, 0x0120
|
|
pad_effect PADEFFECT_SPARKS, 0x0121
|
|
pad_effect PADEFFECT_SPARKS, 0x0122
|
|
pad_effect PADEFFECT_SPARKS, 0x0123
|
|
pad_effect PADEFFECT_SPARKS, 0x0124
|
|
pad_effect PADEFFECT_SPARKS, 0x0125
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0025
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x008c
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0028
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0029
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x002a
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0023
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0027
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0026
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x0006
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x00d9
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x00a3
|
|
pad_effect PADEFFECT_SMOKE_TEMPORARY, 0x000c
|
|
endprops
|
|
|
|
intro:
|
|
outfit OUTFIT_DEFAULT
|
|
intro_weapon WEAPON_FALCON2_SCOPE, -1
|
|
ammo AMMOTYPE_PISTOL, 200
|
|
intro_weapon WEAPON_CALLISTONTG, -1
|
|
ammo AMMOTYPE_SMG, 300
|
|
ammo AMMOTYPE_BUG, 3
|
|
intro_weapon WEAPON_DEVASTATOR, -1
|
|
ammo AMMOTYPE_DEVASTATOR, 4
|
|
intro_weapon WEAPON_IRSCANNER, -1
|
|
intro_weapon WEAPON_RTRACKER, -1
|
|
spawn 0x0000
|
|
endintro
|
|
|
|
func0401_init_unarmed_skedar:
|
|
set_accuracy 0
|
|
set_reaction_speed 75
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 160
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
set_self_flag_bank3 CHRFLAG3_00020000
|
|
set_function CHR_SELF, FUNC_UNARMED_SKEDAR
|
|
endfunction
|
|
|
|
func0402_unarmed_skedar:
|
|
set_onshot_function FUNC_UNARMED_SKEDAR
|
|
set_action ACTION_SCAN, TRUE
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x2d
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
// Dying
|
|
label 0x2d
|
|
set_onshot_function GFUNC_IDLE
|
|
yield
|
|
restart_timer
|
|
|
|
beginloop 0x11
|
|
if_timer_gt 30, /*goto*/ 0x2d
|
|
endloop 0x11
|
|
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
.set LABEL_HANDLE_PHOENIX_AREA, 0x5a
|
|
.set LABEL_HANDLE_WALL_AREA, 0x5b
|
|
|
|
// Alive
|
|
label 0x06
|
|
set_action ACTION_SCAN, TRUE
|
|
stop_chr
|
|
if_self_flag_bankx_eq CHRFLAG0_00000004, FALSE, BANK_0, /*goto*/ 0x03
|
|
set_action ACTION_FOLLOW, TRUE
|
|
try_run_to_target_chr /*goto*/ 0x03
|
|
|
|
beginloop 0x03
|
|
if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ LABEL_HANDLE_PHOENIX_AREA
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0041, /*goto*/ LABEL_HANDLE_WALL_AREA
|
|
if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2d
|
|
label 0x2e
|
|
set_target_chr CHR_JOANNA
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
set_target_chr CHR_VELVET
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
if_self_flag_bankx_eq CHRFLAG0_00000004, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_just_injured CHR_SELF, /*goto*/ 0x2d
|
|
|
|
label 0x2e
|
|
call_rng
|
|
if_rand_gt 1, /*goto*/ 0x06
|
|
say_quip CHR_JOANNA, 0x03, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00
|
|
label 0x06
|
|
endloop 0x03
|
|
|
|
// Injured or detected enemy
|
|
label 0x2d
|
|
label 0xd9
|
|
yield
|
|
if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ LABEL_HANDLE_PHOENIX_AREA
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0041, /*goto*/ LABEL_HANDLE_WALL_AREA
|
|
if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2e
|
|
label 0x2e
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
if_chr_distance_lt 150, /*goto*/ 0x2f
|
|
label 0x54
|
|
if_num_times_shot_lt 1, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
label 0x2d
|
|
restart_timer
|
|
set_action ACTION_WAIT, TRUE
|
|
say_quip CHR_JOANNA, 0x03, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
try_walk_to_target_chr /*goto*/ 0x08
|
|
|
|
beginloop 0x08
|
|
if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ LABEL_HANDLE_PHOENIX_AREA
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0041, /*goto*/ LABEL_HANDLE_WALL_AREA
|
|
if_timer_gt 120, /*goto*/ 0x09
|
|
endloop 0x08
|
|
|
|
label 0x09
|
|
label 0x0a
|
|
if_chr_field0x332_zero CHR_SELF, /*goto*/ 0x2d
|
|
goto_next 0x2d
|
|
|
|
label 0x06
|
|
say_quip CHR_JOANNA, 0x01, 0x20, 0x00, 0xff, BANK_0, 0x00, 0x00
|
|
label 0x2d
|
|
restart_timer
|
|
set_action ACTION_FOLLOW, TRUE
|
|
try_run_to_target_chr /*goto*/ 0x0b
|
|
|
|
beginloop 0x0b
|
|
if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x10
|
|
if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ LABEL_HANDLE_PHOENIX_AREA
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0041, /*goto*/ LABEL_HANDLE_WALL_AREA
|
|
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_dying TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_unloaded TARGET_CHR, /*goto*/ 0x10
|
|
if_distance_to_home_gt_50_maybe /*goto*/ 0x2d
|
|
if_chr_distance_lt 150, /*goto*/ 0x2f
|
|
label 0x2d
|
|
if_chr_distance_lt 50, /*goto*/ 0x2f
|
|
if_timer_gt 30, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
goto_first 0x0a
|
|
|
|
label 0x2f
|
|
restart_timer
|
|
dprint "FACE TARGET\n"
|
|
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
|
|
cmd004f 246, /*goto*/ 0x06
|
|
stop_chr
|
|
set_action ACTION_FACING_TARGET, TRUE
|
|
try_face_entity 0x0200, 0x0001, /*goto*/ 0x0c
|
|
|
|
beginloop 0x0c
|
|
if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x10
|
|
if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ LABEL_HANDLE_PHOENIX_AREA
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0041, /*goto*/ LABEL_HANDLE_WALL_AREA
|
|
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_dying TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_unloaded TARGET_CHR, /*goto*/ 0x10
|
|
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
|
|
cmd004f 246, /*goto*/ 0x06
|
|
if_timer_gt 60, /*goto*/ 0x06
|
|
endloop 0x0c
|
|
|
|
label 0x06
|
|
set_action ACTION_HAND_COMBAT_SKEDAR, TRUE
|
|
try_punch_or_kick /*goto*/ 0x31
|
|
goto_first 0xd9
|
|
|
|
// Punching or kicking
|
|
label 0x31
|
|
|
|
beginloop 0x30
|
|
if_chr_flag_bank2 TARGET_CHR, CHRFLAG2_CLOAKED, /*goto*/ 0x10
|
|
if_chr_in_room CHR_SELF, 0x00, 0x003b, /*goto*/ LABEL_HANDLE_PHOENIX_AREA
|
|
if_chr_in_room CHR_SELF, 0x00, 0x0041, /*goto*/ LABEL_HANDLE_WALL_AREA
|
|
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_dying TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_unloaded TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_stopped /*goto*/ 0x06
|
|
endloop 0x30
|
|
|
|
// Finished attack
|
|
label 0x06
|
|
if_chr_death_animation_finished TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_dying TARGET_CHR, /*goto*/ 0x10
|
|
if_chr_unloaded TARGET_CHR, /*goto*/ 0x10
|
|
goto_first 0xd9
|
|
|
|
// Killed target
|
|
label 0x10
|
|
stop_chr
|
|
unset_self_flag_bankx CHRFLAG0_00000004, BANK_0
|
|
goto_first 0x03
|
|
|
|
// At ledge near Phoenix
|
|
label LABEL_HANDLE_PHOENIX_AREA
|
|
stop_chr
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
restart_timer
|
|
run_to_pad 0x0018
|
|
|
|
beginloop 0x5c
|
|
if_chr_stopped /*goto*/ 0x2d
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0020, /*goto*/ 0x2d // at T junction near Phoenix
|
|
endloop 0x5c
|
|
|
|
label 0x2d
|
|
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
|
|
goto_first 0x03
|
|
|
|
// At ledge prior to grenadable wall
|
|
label LABEL_HANDLE_WALL_AREA
|
|
stop_chr
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
restart_timer
|
|
run_to_pad 0x003c
|
|
|
|
beginloop 0x5c
|
|
if_chr_stopped /*goto*/ 0x2d
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0045, /*goto*/ 0x2d // at weak wall
|
|
endloop 0x5c
|
|
|
|
label 0x2d
|
|
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
|
|
goto_first 0x03
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0405_puzzleroom_miniskedar_waiting:
|
|
stop_chr
|
|
|
|
beginloop 0x03
|
|
if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2d
|
|
|
|
label 0x2e
|
|
set_target_chr CHR_JOANNA
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
set_target_chr CHR_VELVET
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
if_just_injured CHR_SELF, /*goto*/ 0x2d
|
|
endloop 0x03
|
|
|
|
// Detected player
|
|
label 0x2d
|
|
set_function CHR_SELF, FUNC_INIT_MINISKEDAR
|
|
endfunction
|
|
|
|
func0403_init_miniskedar:
|
|
set_self_flag_bank3 CHRFLAG3_00020000
|
|
set_accuracy 0
|
|
set_reaction_speed 75
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 0
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
set_self_flag_bank3 CHRFLAG3_00080000
|
|
set_function CHR_SELF, FUNC_MINISKEDAR
|
|
endfunction
|
|
|
|
func0404_miniskedar:
|
|
set_onshot_function FUNC_MINISKEDAR
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x2d
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x2d
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
// Dying
|
|
label 0x2d
|
|
yield
|
|
restart_timer
|
|
|
|
beginloop 0x11
|
|
if_timer_gt 30, /*goto*/ 0x2d
|
|
endloop 0x11
|
|
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Alive
|
|
label 0x06
|
|
label 0x03
|
|
yield
|
|
if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2d
|
|
|
|
label 0x2e
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
if_just_injured CHR_SELF, /*goto*/ 0x2d
|
|
|
|
// Healthy
|
|
call_rng
|
|
say_quip CHR_JOANNA, 0x06, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00
|
|
label 0x06
|
|
label 0x06
|
|
goto_next 0x54
|
|
|
|
// Injured or detected enemy
|
|
label 0x2d
|
|
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
|
|
if_chr_distance_lt 400, /*goto*/ 0x2f
|
|
|
|
label 0x54
|
|
restart_timer
|
|
label 0x09
|
|
restart_timer
|
|
if_chr_field0x332_zero CHR_SELF, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
label 0x06
|
|
try_run_to_target_chr /*goto*/ 0x0b
|
|
|
|
beginloop 0x0b
|
|
if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x2d
|
|
label 0x2e
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
if_chr_distance_lt 400, /*goto*/ 0x2f
|
|
label 0x06
|
|
if_timer_gt 60, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
goto_first 0x09
|
|
|
|
label 0x2f
|
|
restart_timer
|
|
dprint "FACE TARGET\n"
|
|
stop_chr
|
|
try_face_entity 0x0200, 0x0000, /*goto*/ 0x0c
|
|
|
|
beginloop 0x0c
|
|
if_timer_gt 30, /*goto*/ 0x06
|
|
endloop 0x0c
|
|
|
|
label 0x2d
|
|
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
|
|
cmd004f 246, /*goto*/ 0x06
|
|
goto_first 0x0c
|
|
|
|
label 0x06
|
|
if_chr_distance_lt 200, /*goto*/ 0x2e
|
|
miniskedar_try_pounce 0x04, 0x000e, /*goto*/ 0x30
|
|
goto_first 0x03
|
|
|
|
beginloop 0x30
|
|
if_chr_stopped /*goto*/ 0x2d
|
|
endloop 0x30
|
|
|
|
label 0x2d
|
|
restart_timer
|
|
if_chr_injured_target CHR_SELF, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
label 0x2e
|
|
retreat 0x02, 0x01
|
|
|
|
beginloop 0x0d
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x0d
|
|
|
|
label 0x06
|
|
goto_first 0x03
|
|
|
|
endfunction
|
|
|
|
/**
|
|
* Spawn a clone and remove self. This function seems unnecessary.
|
|
*/
|
|
func0407_init_cloaked_skedar:
|
|
set_self_flag_bank3 CHRFLAG3_00000002
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED
|
|
|
|
beginloop 0x04
|
|
// Wait until clone dead - which it would be immediately?
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
label 0x4f
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
|
|
reloop 0x04
|
|
|
|
// Spawn clone
|
|
label 0x4f
|
|
try_spawn_clone2 CHR_SELF, FUNC_CLOAKED_SKEDAR, 0x00001010, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
// Remove self
|
|
label 0x2d
|
|
remove_chr CHR_SELF
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
yield
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func0408_cloaked_skedar:
|
|
set_chr_alliance CHR_SELF, ALLIANCE_ENEMY
|
|
cmd0145_rebuild_groups
|
|
cmd0146_rebuild_groups
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00400000
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_objective_complete 4, /*goto*/ 0x0e
|
|
|
|
// King is alive
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 300, TARGET_PAD, /*goto*/ 0x2d
|
|
|
|
// 1 in 256 chance of making skedar roar sound
|
|
call_rng
|
|
if_rand_gt 1, /*goto*/ 0x06
|
|
say_quip CHR_JOANNA, 0x03, 0xff, 0x05, 0xff, BANK_0, 0x00, 0x00
|
|
label 0x06
|
|
endloop 0x08
|
|
|
|
// Player went close to cloaked skedar
|
|
label 0x2d
|
|
unset_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_function CHR_SELF, FUNC_INIT_UNARMED_SKEDAR
|
|
|
|
// King is dead
|
|
label 0x0e
|
|
remove_chr CHR_SELF
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* Spawns up to 3 miniskedar clones, one at a time.
|
|
*/
|
|
func0404_miniskedar_spawner:
|
|
set_self_flag_bank3 CHRFLAG3_00000002
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_var_a 0
|
|
|
|
// Wait until player near trigger pad
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 300, TARGET_PAD, /*goto*/ 0x4f
|
|
endloop 0x04
|
|
|
|
label 0x4f
|
|
if_var_a_lt 3, /*goto*/ 0x06
|
|
goto_next 0x2e
|
|
|
|
label 0x06
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
|
|
reloop 0x04
|
|
|
|
label 0x4f
|
|
try_spawn_clone2 CHR_SELF, FUNC_INIT_MINISKEDAR, 0x00000010, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
add_var_a 1
|
|
label 0x2e
|
|
yield
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
unregistered_function3:
|
|
camera_movement 0x00c3
|
|
yield
|
|
set_chr_flag_bank2 0x00, CHRFLAG2_00020000
|
|
animation 0x00c4, -1, -1, 0x0600, 0x00, 4
|
|
|
|
beginloop 0x08
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1001_objectives_failed_msg:
|
|
yield
|
|
give_object_to_chr OBJ_TARGETAMP_JOANNA, CHR_JOANNA
|
|
give_object_to_chr OBJ_TARGETAMP_VELVET, CHR_VELVET
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
|
|
set_function CHR_SELF, GFUNC_SHOW_OBJ_FAILED_MSG
|
|
|
|
label 0x2d
|
|
hide_object OBJ_TARGETAMP_VELVET
|
|
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
|
|
|
|
func1003_remove_random_skedar:
|
|
.macro remove_random chr1 chr2
|
|
call_rng
|
|
if_rand_gt 128, /*goto*/ 0x2d
|
|
remove_chr \chr1
|
|
goto_next 0x06
|
|
label 0x2d
|
|
remove_chr \chr2
|
|
label 0x06
|
|
.endm
|
|
|
|
remove_random 0x05, 0x06
|
|
remove_random 0x07, 0x08
|
|
remove_random 0x0b, 0x0c
|
|
remove_random 0x0f, 0x10
|
|
remove_random 0x11, 0x12
|
|
remove_random 0x13, 0x14
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func101a_pointless:
|
|
beginloop 0x04
|
|
if_chr_death_animation_finished CHR_KING1, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100c_check_army_defeated:
|
|
yield
|
|
|
|
beginloop 0x04
|
|
if_chr_death_animation_finished 0x2c, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished 0x2d, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished 0x2e, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished 0x2f, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished 0x30, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished 0x31, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished 0x32, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
message CHR_JOANNA, 0x421d // "Skedar secret army has been defeated."
|
|
set_stage_flag STAGEFLAG_ARMY_DEFEATED
|
|
|
|
beginloop 0x91
|
|
if_objective_complete 0, /*goto*/ 0x2d
|
|
endloop 0x91
|
|
|
|
label 0x2d
|
|
unset_object_flag_bank1 0x45, OBJECTFLAG1_08000000
|
|
unset_object_flag_bank1 0x46, OBJECTFLAG1_10000000
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1005_5e0c:
|
|
yield
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_object_distance_to_pad_lt OBJ_PUZZLEROCK, 50, 0x00d4, /*goto*/ 0x2d
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 50, 0x00d4, /*goto*/ 0x2d
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x005f, /*goto*/ 0x2e
|
|
unset_stage_flag STAGEFLAG_TRIGGER_BRIDGE
|
|
endloop 0x04
|
|
|
|
// Crossed bridge without using puzzle piece,
|
|
// or one player crossed then another moved the piece off the pad
|
|
label 0x2e
|
|
set_stage_flag STAGEFLAG_CROSSED_RAVINE_WITHOUT_BRIDGE
|
|
set_stage_flag STAGEFLAG_TRIGGER_BRIDGE
|
|
|
|
// Pad pressed, or follow through from above
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_TRIGGER_BRIDGE, TRUE, /*goto*/ 0x2d
|
|
mute_channel CHANNEL_5
|
|
assign_sound 0x0436, CHANNEL_5
|
|
control_sound_from_object CHANNEL_5, OBJ_PUZZLEROCK, TRUE
|
|
|
|
// Wait for a condition that would cause the bridge to retract
|
|
label 0x2d
|
|
restart_timer
|
|
|
|
beginloop 0x91
|
|
if_stage_flag_eq STAGEFLAG_CROSSED_RAVINE_WITHOUT_BRIDGE, TRUE, /*goto*/ 0x2d
|
|
if_timer_gt 60, /*goto*/ 0x2e
|
|
label 0x2d
|
|
if_timer_lt 20, /*goto*/ 0x06
|
|
if_stage_flag_eq STAGEFLAG_CROSSED_RAVINE_WITHOUT_BRIDGE, TRUE, /*goto*/ 0x93
|
|
if_object_distance_to_pad_lt OBJ_PUZZLEROCK, 50, 0x00d4, /*goto*/ 0x06
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 50, 0x00d4, /*goto*/ 0x06
|
|
goto_next 0x2e
|
|
|
|
label 0x06
|
|
reloop 0x91
|
|
|
|
label 0x93
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0057, /*goto*/ 0x06 // start side
|
|
endloop 0x91
|
|
|
|
// Player crossed bridge without using switch, then crossed back
|
|
label 0x06
|
|
unset_stage_flag STAGEFLAG_CROSSED_RAVINE_WITHOUT_BRIDGE
|
|
unset_stage_flag STAGEFLAG_TRIGGER_BRIDGE
|
|
goto_first 0x04
|
|
|
|
// Switch activated and bridge extended for 1 second
|
|
label 0x2e
|
|
if_object_distance_to_pad_lt OBJ_PUZZLEROCK, 50, 0x00d4, /*goto*/ 0x2d
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 50, 0x00d4, /*goto*/ 0x2d
|
|
|
|
// Switch no longer pressed
|
|
mute_channel CHANNEL_5
|
|
assign_sound 0x0437, CHANNEL_5
|
|
control_sound_from_object CHANNEL_5, OBJ_PUZZLEROCK, TRUE
|
|
goto_first 0x04
|
|
|
|
// Switch still pressed
|
|
label 0x2d
|
|
set_stage_flag STAGEFLAG_TRIGGER_BRIDGE
|
|
goto_first 0x04
|
|
|
|
endfunction
|
|
|
|
func1006_bridge:
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_TRIGGER_BRIDGE, TRUE, /*goto*/ 0x2d
|
|
set_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
unset_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED
|
|
mute_channel CHANNEL_4
|
|
assign_sound 0x8020, CHANNEL_4
|
|
play_sound_from_object CHANNEL_4, OBJ_BRIDGE, 0x04b0, 0x0640
|
|
yield
|
|
|
|
beginloop 0x08
|
|
if_lift_stationary OBJ_BRIDGE, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
mute_channel CHANNEL_4
|
|
assign_sound 0x8027, CHANNEL_4
|
|
control_sound_from_object CHANNEL_4, OBJ_BRIDGE, TRUE
|
|
set_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED
|
|
set_stage_flag STAGEFLAG_BRIDGE_EXTENDED
|
|
|
|
beginloop 0x09
|
|
if_stage_flag_eq STAGEFLAG_TRIGGER_BRIDGE, FALSE, /*goto*/ 0x2d
|
|
endloop 0x09
|
|
|
|
label 0x2d
|
|
|
|
beginloop 0x91
|
|
if_sound_finished CHANNEL_4, /*goto*/ 0x2d
|
|
endloop 0x91
|
|
|
|
label 0x2d
|
|
unset_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED
|
|
mute_channel CHANNEL_4
|
|
assign_sound 0x8020, CHANNEL_4
|
|
play_sound_from_object CHANNEL_4, OBJ_BRIDGE, 0x04b0, 0x0640
|
|
yield
|
|
|
|
beginloop 0x0b
|
|
if_lift_stationary OBJ_BRIDGE, /*goto*/ 0x06
|
|
endloop 0x0b
|
|
|
|
label 0x06
|
|
unset_stage_flag STAGEFLAG_BRIDGE_EXTENDED
|
|
set_object_flag_bank0 OBJ_BRIDGE, OBJECTFLAG0_DEACTIVATED
|
|
mute_channel CHANNEL_4
|
|
assign_sound 0x8027, CHANNEL_4
|
|
control_sound_from_object CHANNEL_4, OBJ_BRIDGE, TRUE
|
|
goto_first 0x04
|
|
|
|
endfunction
|
|
|
|
func1007_bug_throws_joanna:
|
|
beginloop 0x03
|
|
if_stage_flag_eq STAGEFLAG_JOANNA_THREW_FIRST_BUG, FALSE, /*goto*/ 0x55
|
|
if_stage_flag_eq STAGEFLAG_JOANNA_THREW_SECOND_BUG, FALSE, /*goto*/ 0x56
|
|
if_stage_flag_eq STAGEFLAG_JOANNA_THREW_THIRD_BUG, FALSE, /*goto*/ 0x57
|
|
|
|
label 0x55
|
|
dprint "CHECK 1\n"
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 3, /*goto*/ 0x2d
|
|
endloop 0x03
|
|
|
|
// Threw first
|
|
label 0x2d
|
|
dprint "FIRE 1\n"
|
|
set_stage_flag STAGEFLAG_JOANNA_THREW_FIRST_BUG
|
|
goto_next 0x0e
|
|
|
|
// Check for second
|
|
label 0x56
|
|
dprint "CHECK 2\n"
|
|
label 0x2d
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 2, /*goto*/ 0x2d
|
|
goto_first 0x03
|
|
|
|
label 0x2d
|
|
set_stage_flag STAGEFLAG_JOANNA_THREW_SECOND_BUG
|
|
goto_next 0x0e
|
|
|
|
// Check for third
|
|
label 0x57
|
|
dprint "CHECK 3\n"
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 1, /*goto*/ 0x2d
|
|
goto_first 0x03
|
|
|
|
label 0x2d
|
|
set_stage_flag STAGEFLAG_JOANNA_THREW_THIRD_BUG
|
|
goto_next 0x0e
|
|
|
|
beginloop 0x0e
|
|
if_weapon_thrown WEAPON_TARGETAMPLIFIER, /*goto*/ 0x06
|
|
endloop 0x0e
|
|
|
|
label 0x06
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
dprint "AT REST\n"
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, TRUE, /*goto*/ 0x2d
|
|
if_weapon_thrown_on_object WEAPON_TARGETAMPLIFIER, OBJ_PILLAR1, /*goto*/ 0x09
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, TRUE, /*goto*/ 0x2d
|
|
if_weapon_thrown_on_object WEAPON_TARGETAMPLIFIER, OBJ_PILLAR2, /*goto*/ 0x0b
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, TRUE, /*goto*/ 0x2d
|
|
if_weapon_thrown_on_object WEAPON_TARGETAMPLIFIER, OBJ_PILLAR3, /*goto*/ 0x0c
|
|
label 0x2d
|
|
if_timer_gt 120, /*goto*/ 0x0d
|
|
endloop 0x08
|
|
|
|
label 0x09
|
|
dprint "1 PLACED\n"
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, TRUE, /*goto*/ 0x0d
|
|
set_stage_flag STAGEFLAG_PILLAR1_MARKED
|
|
message CHR_JOANNA, 0x4219 // "Target Amplifier placed correctly."
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 1, /*goto*/ 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x0b
|
|
dprint "2 PLACED\n"
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, TRUE, /*goto*/ 0x0d
|
|
set_stage_flag STAGEFLAG_PILLAR2_MARKED
|
|
message CHR_JOANNA, 0x4219 // "Target Amplifier placed correctly."
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 1, /*goto*/ 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x0c
|
|
dprint "3 PLACED\n"
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, TRUE, /*goto*/ 0x0d
|
|
set_stage_flag STAGEFLAG_PILLAR3_MARKED
|
|
message CHR_JOANNA, 0x4219 // "Target Amplifier placed correctly."
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 1, /*goto*/ 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x0d
|
|
dprint "PLLACED WRONG\n"
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2e
|
|
if_stage_flag_eq STAGEFLAG_VELVET_BUGS_WASTED, TRUE, /*goto*/ 0x2d
|
|
goto_next 0x0f
|
|
|
|
label 0x2d
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 1, /*goto*/ 0x2e
|
|
goto_next 0x0f
|
|
|
|
label 0x2e
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, FALSE, /*goto*/ 0x06
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, FALSE, /*goto*/ 0x06
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, FALSE, /*goto*/ 0x06
|
|
goto_next 0x2d
|
|
|
|
label 0x06
|
|
set_stage_flag STAGEFLAG_JOANNA_BUGS_WASTED
|
|
if_stage_flag_eq STAGEFLAG_VELVET_BUGS_WASTED, FALSE, /*goto*/ 0x0f
|
|
set_stage_flag STAGEFLAG_BUG_WASTED
|
|
message CHR_JOANNA, 0x421a // "Target Amplifier placed incorrectly."
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x0f
|
|
goto_first 0x03
|
|
|
|
endfunction
|
|
|
|
func101b_bug_throws_velvet:
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
|
|
goto_next 0x03
|
|
|
|
label 0x2d
|
|
set_stage_flag STAGEFLAG_VELVET_BUGS_WASTED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
beginloop 0x03
|
|
if_stage_flag_eq STAGEFLAG_VELVET_THREW_FIRST_BUG, FALSE, /*goto*/ 0x55
|
|
if_stage_flag_eq STAGEFLAG_VELVET_THREW_SECOND_BUG, FALSE, /*goto*/ 0x56
|
|
if_stage_flag_eq STAGEFLAG_VELVET_THREW_THIRD_BUG, FALSE, /*goto*/ 0x57
|
|
|
|
label 0x55
|
|
dprint "COOP CHECK 1\n"
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 3, /*goto*/ 0x2d
|
|
endloop 0x03
|
|
|
|
label 0x2d
|
|
dprint "COOP FIRE 1\n"
|
|
set_stage_flag STAGEFLAG_VELVET_THREW_FIRST_BUG
|
|
goto_next 0x0e
|
|
|
|
label 0x56
|
|
dprint "COOP CHECK 2\n"
|
|
label 0x2d
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 2, /*goto*/ 0x2d
|
|
goto_first 0x03
|
|
|
|
label 0x2d
|
|
set_stage_flag STAGEFLAG_VELVET_THREW_SECOND_BUG
|
|
goto_next 0x0e
|
|
|
|
label 0x57
|
|
dprint "COOP CHECK 3\n"
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 1, /*goto*/ 0x2d
|
|
goto_first 0x03
|
|
|
|
label 0x2d
|
|
set_stage_flag STAGEFLAG_VELVET_THREW_THIRD_BUG
|
|
goto_next 0x0e
|
|
|
|
beginloop 0x0e
|
|
if_weapon_thrown WEAPON_TARGETAMPLIFIER, /*goto*/ 0x06
|
|
endloop 0x0e
|
|
|
|
label 0x06
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
dprint "COOP AT REST\n"
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, TRUE, /*goto*/ 0x2d
|
|
if_weapon_thrown_on_object WEAPON_TARGETAMPLIFIER, 0x01, /*goto*/ 0x09
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, TRUE, /*goto*/ 0x2d
|
|
if_weapon_thrown_on_object WEAPON_TARGETAMPLIFIER, 0x02, /*goto*/ 0x0b
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, TRUE, /*goto*/ 0x2d
|
|
if_weapon_thrown_on_object WEAPON_TARGETAMPLIFIER, 0x03, /*goto*/ 0x0c
|
|
label 0x2d
|
|
if_timer_gt 120, /*goto*/ 0x0d
|
|
endloop 0x08
|
|
|
|
label 0x09
|
|
dprint "COOP 1 PLACED\n"
|
|
unset_object_flag_bank2 OBJ_PILLAR1, OBJECTFLAG2_RTRACKED_YELLOW
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, TRUE, /*goto*/ 0x0d
|
|
set_stage_flag STAGEFLAG_PILLAR1_MARKED
|
|
message CHR_VELVET, 0x4219 // "Target Amplifier placed correctly."
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 1, /*goto*/ 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x0b
|
|
dprint "COOP 2 PLACED\n"
|
|
unset_object_flag_bank2 OBJ_PILLAR2, OBJECTFLAG2_RTRACKED_YELLOW
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, TRUE, /*goto*/ 0x0d
|
|
set_stage_flag STAGEFLAG_PILLAR2_MARKED
|
|
message CHR_VELVET, 0x4219 // "Target Amplifier placed correctly."
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 1, /*goto*/ 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x0c
|
|
dprint "COOP 3 PLACED\n"
|
|
unset_object_flag_bank2 OBJ_PILLAR3, OBJECTFLAG2_RTRACKED_YELLOW
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, TRUE, /*goto*/ 0x0d
|
|
set_stage_flag STAGEFLAG_PILLAR3_MARKED
|
|
message CHR_VELVET, 0x4219 // "Target Amplifier placed correctly."
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 1, /*goto*/ 0x0d
|
|
goto_first 0x03
|
|
|
|
label 0x0d
|
|
dprint "COOP PLLACED WRONG\n"
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_BUG, 1, /*goto*/ 0x2d
|
|
goto_next 0x0f
|
|
|
|
label 0x2d
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_BUG, 1, /*goto*/ 0x2d
|
|
goto_next 0x0f
|
|
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, FALSE, /*goto*/ 0x06
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, FALSE, /*goto*/ 0x06
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, FALSE, /*goto*/ 0x06
|
|
goto_next 0x2d
|
|
|
|
label 0x06
|
|
set_stage_flag STAGEFLAG_VELVET_BUGS_WASTED
|
|
if_self_flag_bankx_eq CHRFLAG0_00000010, FALSE, BANK_0, /*goto*/ 0x0f
|
|
set_stage_flag STAGEFLAG_BUG_WASTED
|
|
message CHR_VELVET, 0x421a // "Target Amplifier placed incorrectly."
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x0f
|
|
goto_first 0x03
|
|
|
|
endfunction
|
|
|
|
func1008_lock_door:
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x2d
|
|
goto_next 0x04
|
|
|
|
// A
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// SA and PA
|
|
label 0x04
|
|
yield
|
|
lock_door 0x09, 0x02
|
|
lock_door 0x0a, 0x02
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1009_altar:
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x0f
|
|
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_object_flag_bank1 OBJ_ALTAR, OBJECTFLAG1_00002000, /*goto*/ 0x2d
|
|
if_chr_distance_to_pad_lt CHR_P1P2, 300, 0x0137, /*goto*/ 0x2e
|
|
label 0x2d
|
|
if_chr_activated_object CHR_P1P2, OBJ_ALTAR, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
// Activated
|
|
label 0x06
|
|
|
|
// Altar has flag
|
|
label 0x2d
|
|
if_chr_weapon_equipped CHR_P1P2, WEAPON_DEVASTATOR, /*goto*/ 0x92
|
|
if_chr_weapon_equipped CHR_P1P2, WEAPON_CALLISTONTG, /*goto*/ 0x93
|
|
if_chr_weapon_equipped CHR_P1P2, WEAPON_FALCON2_SCOPE, /*goto*/ 0x94
|
|
if_chr_weapon_equipped CHR_P1P2, WEAPON_SLAYER, /*goto*/ 0x95
|
|
if_chr_weapon_equipped CHR_P1P2, WEAPON_MAULER, /*goto*/ 0x96
|
|
|
|
// At pad, or invalid weapon equipped
|
|
label 0x2e
|
|
set_object_flag_bank1 OBJ_ALTAR, OBJECTFLAG1_00002000
|
|
message CHR_P1P2, 0x4233 // "Make your sacrifice to the God of War."
|
|
restart_timer
|
|
|
|
beginloop 0x91
|
|
if_timer_gt 120, /*goto*/ 0x06
|
|
endloop 0x91
|
|
|
|
label 0x06
|
|
goto_first 0x08
|
|
|
|
label 0x92
|
|
unset_object_flag_bank1 OBJ_ALTAR_DEVASTATOR, OBJECTFLAG1_INVISIBLE
|
|
goto_next 0x2d
|
|
|
|
label 0x93
|
|
unset_object_flag_bank1 OBJ_ALTAR_CALLISTO, OBJECTFLAG1_INVISIBLE
|
|
goto_next 0x2d
|
|
|
|
label 0x94
|
|
unset_object_flag_bank1 OBJ_ALTAR_FALCON, OBJECTFLAG1_INVISIBLE
|
|
goto_next 0x2d
|
|
|
|
label 0x95
|
|
unset_object_flag_bank1 OBJ_ALTAR_SLAYER, OBJECTFLAG1_INVISIBLE
|
|
goto_next 0x2d
|
|
|
|
label 0x96
|
|
unset_object_flag_bank1 OBJ_ALTAR_MAULER, OBJECTFLAG1_INVISIBLE
|
|
goto_next 0x2d
|
|
|
|
label 0x2d
|
|
play_sound 0x80aa, -1
|
|
chr_drop_weapon CHR_P1P2
|
|
label 0x04
|
|
yield
|
|
label 0x2d
|
|
label 0x0f
|
|
unlock_door 0x09, 0x02
|
|
unlock_door 0x0a, 0x02
|
|
set_lights_state 0x0060, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0061, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0062, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0063, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0064, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0065, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0066, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0067, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0068, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0069, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x006a, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x006b, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x006c, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x006d, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x006e, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x006f, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0070, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0071, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0072, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0073, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0074, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0075, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0076, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0077, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0078, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x0079, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x007a, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x007b, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x007c, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x007d, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x007e, 0x03, 0x06, 0x80, 0x78
|
|
set_lights_state 0x007f, 0x03, 0x06, 0x80, 0x78
|
|
restart_timer
|
|
|
|
beginloop 0x0e
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x0e
|
|
|
|
label 0x2d
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x2d
|
|
message CHR_P1P2, 0x421b // "Generator has been reactivated."
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* This function would have cycled the lights every 20 seconds, but the cycling
|
|
* part has been disabled.
|
|
*/
|
|
func101c_setup_corridor_lighting:
|
|
label 0x59
|
|
restart_timer
|
|
label 0x04
|
|
yield
|
|
label 0x2d
|
|
set_lights_state 0x0060, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0061, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0062, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0063, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0064, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0065, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0066, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0067, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0068, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0069, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x006a, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x006b, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x006c, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x006d, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x006e, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x006f, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0070, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0071, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0072, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0073, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0074, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0076, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0078, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0079, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x007a, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x007b, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x007c, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x007d, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x007e, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x007f, 0x01, 0x06, 0x00, 0x00
|
|
yield
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// The rest of this function is unreachable
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 1200, /*goto*/ 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x2d
|
|
set_lights_state 0x0060, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0061, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0062, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0063, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0064, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0065, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0066, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0067, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0068, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0069, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x006a, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x006b, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x006c, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x006d, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x006e, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x006f, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0070, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0071, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0072, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0073, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0074, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0075, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0076, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0077, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0078, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0079, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x007a, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x007b, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x007c, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x007d, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x007e, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x007f, 0x03, 0x06, 0xff, 0x78
|
|
goto_first 0x59
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func040a_init_reaper_slayer_skedar:
|
|
set_accuracy 20
|
|
set_reaction_speed 75
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 160
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
set_function CHR_SELF, FUNC_REAPER_SLAYER_SKEDAR
|
|
endfunction
|
|
|
|
func0409_reaper_slayer_skedar:
|
|
unset_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_onshot_function FUNC_REAPER_SLAYER_SKEDAR
|
|
if_chr_dying CHR_SELF, /*goto*/ 0x06
|
|
if_chr_death_animation_finished CHR_SELF, /*goto*/ 0x06
|
|
if_chr_unloaded CHR_SELF, /*goto*/ 0x06
|
|
goto_next 0x2d
|
|
|
|
// Dying
|
|
label 0x06
|
|
set_onshot_function GFUNC_IDLE
|
|
restart_timer
|
|
|
|
beginloop 0x5d
|
|
if_timer_gt 15, /*goto*/ 0x06
|
|
endloop 0x5d
|
|
|
|
label 0x06
|
|
say_quip CHR_JOANNA, 0x19, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
set_onshot_function GFUNC_IDLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Alive
|
|
label 0x2d
|
|
if_just_injured CHR_SELF, /*goto*/ 0x06
|
|
goto_next 0x08
|
|
|
|
// Injured
|
|
label 0x06
|
|
set_view_distance 100
|
|
|
|
// Healthy
|
|
label 0x08
|
|
set_self_flag_bank3 CHRFLAG3_00000040
|
|
label 0x5e
|
|
if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x06
|
|
set_target_chr CHR_JOANNA
|
|
try_chr_kneel_and_shoot_thing 0x0220, 0x0000, /*goto*/ 0x5f
|
|
label 0x06
|
|
kneel
|
|
|
|
beginloop 0x5f
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
label 0x2d
|
|
set_target_chr CHR_P1P2
|
|
if_self_flag_bankx_eq CHRFLAG0_AIVSAI, FALSE, BANK_0, /*goto*/ 0x2e
|
|
if_enemy_distance_lt_and_los 2540, /*goto*/ 0x60
|
|
label 0x2e
|
|
if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x06
|
|
if_target_chr_in_sight /*goto*/ 0x60
|
|
label 0x06
|
|
if_just_injured CHR_SELF, /*goto*/ 0x58
|
|
label 0x2d
|
|
if_shot_near_chr 0x00, /*goto*/ 0x60
|
|
if_near_miss /*goto*/ 0x61
|
|
label 0x2d
|
|
set_target_chr CHR_P1P2
|
|
endloop 0x5f
|
|
|
|
label 0x06
|
|
if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x2d
|
|
if_target_chr_in_sight /*goto*/ 0x60
|
|
label 0x2d
|
|
set_target_chr CHR_JOANNA
|
|
goto_first 0x5f
|
|
|
|
label 0x60
|
|
if_chr_sees_player /*goto*/ 0x2d
|
|
goto_first 0x5e
|
|
|
|
label 0x58
|
|
label 0x2d
|
|
set_view_distance 100
|
|
if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x2d
|
|
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
|
|
say_quip CHR_JOANNA, 0x0b, 0xff, 0x02, 0xff, BANK_0, 0x00, 0x00
|
|
label 0x2d
|
|
goto_next 0x71
|
|
|
|
// Unreachable
|
|
cmd0184 0x5a64
|
|
|
|
beginloop 0x64
|
|
if_chr_stopped /*goto*/ 0x63
|
|
endloop 0x64
|
|
|
|
label 0x63
|
|
restart_timer
|
|
stop_chr
|
|
|
|
beginloop 0x65
|
|
if_chr_weapon_equipped CHR_SELF, WEAPON_SLAYER, /*goto*/ 0x2e
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
|
|
label 0x2e
|
|
if_timer_gt 200, /*goto*/ 0x2d
|
|
endloop 0x65
|
|
|
|
label 0x2d
|
|
label 0x06
|
|
goto_first 0x5e
|
|
|
|
label 0x61
|
|
set_view_distance 100
|
|
restart_timer
|
|
if_self_flag_bankx_eq CHRFLAG0_00000004, TRUE, BANK_0, /*goto*/ 0x6a
|
|
set_self_flag_bankx CHRFLAG0_00000004, BANK_0
|
|
|
|
label 0x6a
|
|
call_rng
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_player_looking_at_something_maybe 0x00, 0x00, 0x01, /*goto*/ 0x06
|
|
if_target_chr_in_sight /*goto*/ 0x6b
|
|
label 0x06
|
|
if_timer_gt 60, /*goto*/ 0x6c
|
|
if_rand_lt 4, /*goto*/ 0x6c
|
|
goto_first 0x6a
|
|
|
|
label 0x6c
|
|
if_chr_sees_player /*goto*/ 0x6b
|
|
goto_first 0x5e
|
|
|
|
label 0x6b
|
|
goto_first 0x60
|
|
|
|
label 0x6d
|
|
restart_timer
|
|
|
|
beginloop 0x6e
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_chr_sees_player /*goto*/ 0x6b
|
|
if_timer_gt 300, /*goto*/ 0x06
|
|
endloop 0x6e
|
|
|
|
label 0x06
|
|
goto_first 0x5e
|
|
|
|
label 0x6b
|
|
goto_first 0x60
|
|
|
|
label 0x71
|
|
if_self_flag_bankx_eq CHRFLAG0_00002000, FALSE, BANK_0, /*goto*/ 0x72
|
|
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x70
|
|
label 0x70
|
|
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
|
|
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x06
|
|
goto_next 0x2d
|
|
|
|
label 0x72
|
|
cmd0184 0x283c
|
|
dprint "FIRE FULL\n"
|
|
label 0x06
|
|
goto_first 0x64
|
|
|
|
label 0x2d
|
|
goto_first 0x63
|
|
|
|
endfunction
|
|
|
|
func100a_army_room:
|
|
yield
|
|
set_lights_state 0x0082, 0x01, 0x06, 0x00, 0x00
|
|
set_lights_state 0x0087, 0x01, 0x06, 0x00, 0x00
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0082, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
close_door 0x0d
|
|
close_door 0x0e
|
|
close_door 0x0f
|
|
close_door 0x10
|
|
if_objective_complete 0, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
lock_door 0x0d, 0x02
|
|
lock_door 0x0e, 0x02
|
|
lock_door 0x0f, 0x02
|
|
lock_door 0x10, 0x02
|
|
label 0x06
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 180, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
label 0x06
|
|
set_lights_state 0x0082, 0x03, 0x06, 0xff, 0x78
|
|
set_lights_state 0x0087, 0x03, 0x06, 0xff, 0x78
|
|
set_stage_flag STAGEFLAG_TRIGGER_SKEDAR_ARMY
|
|
play_x_music CHANNEL_10, 60
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
goto_first 0x04
|
|
|
|
endfunction
|
|
|
|
func100b_check_sanctum_accessed:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x007a, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
message CHR_P1P2, 0x421c // "Skedar Inner Sanctum has been reached."
|
|
set_stage_flag STAGEFLAG_ACCESSED_SANCTUM
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func040b_mauler_skedar:
|
|
set_self_flag_bank3 CHRFLAG3_00080000
|
|
set_accuracy 20
|
|
set_reaction_speed 50
|
|
set_chr_health CHR_SELF, 40
|
|
set_armor 50
|
|
set_recovery_speed 0
|
|
set_shield 0
|
|
|
|
beginloop 0x04
|
|
if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
set_alertness 100
|
|
set_target_chr CHR_JOANNA
|
|
try_run_to_target_chr_with_hand_up /*goto*/ 0x2d
|
|
label 0x2d
|
|
set_onshot_function GFUNC_COMBAT_WITH_TARGET_CHR
|
|
set_return_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
|
|
set_function CHR_SELF, GFUNC_COMBAT_WITH_TARGET_CHR
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func100e_wake_skedar_army:
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_TRIGGER_SKEDAR_ARMY, TRUE, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
|
|
.macro enable_army_skedar chr loopid
|
|
restart_timer
|
|
set_chr_flag_bankx \chr, CHRFLAG0_00002000, BANK_0
|
|
beginloop \loopid
|
|
if_timer_gt 500, /*goto*/ 0x2d
|
|
endloop \loopid
|
|
label 0x2d
|
|
.endm
|
|
|
|
enable_army_skedar 0x2e, 0x08
|
|
enable_army_skedar 0x31, 0x09
|
|
enable_army_skedar 0x2c, 0x0b
|
|
enable_army_skedar 0x2f, 0x0c
|
|
enable_army_skedar 0x2d, 0x0d
|
|
enable_army_skedar 0x32, 0x0e
|
|
enable_army_skedar 0x30, 0x0f
|
|
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func040c_king_waiting:
|
|
set_shield 500
|
|
set_accuracy 100
|
|
set_chr_flag_bank3 CHR_SELF, CHRFLAG3_00080000
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00100000
|
|
if_difficulty_gt DIFF_A, /*goto*/ 0x2d
|
|
set_self_flag_bank3 CHRFLAG3_00000020
|
|
label 0x2d
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_10000000
|
|
set_var_a 0
|
|
|
|
beginloop 0x08
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x2d
|
|
stop_music_channel -1
|
|
play_music_track MUSIC_SKEDARRUINS_KING
|
|
restart_timer
|
|
|
|
beginloop 0x09
|
|
if_timer_gt 300, /*goto*/ 0x2d
|
|
endloop 0x09
|
|
|
|
label 0x2d
|
|
unset_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_function CHR_SELF, FUNC_KING_COMBAT
|
|
endfunction
|
|
|
|
/**
|
|
* var_a tracks how many rockets have been fired in a row.
|
|
*/
|
|
func040d_king_combat:
|
|
.set LABEL_MAINLOOP, 0x03
|
|
.set LABEL_PLAYER_DEAD, 0x11
|
|
.set LABEL_FIRE_ROCKET, 0x73
|
|
.set LABEL_SPAWN_SKEDAR, 0x74
|
|
.set LABEL_SPAWN_MINISKEDAR, 0x75
|
|
.set LABEL_CLOAK, 0x76
|
|
.set LABEL_LOW_SHIELD, 0x7c
|
|
|
|
beginloop 0x59
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
if_in_disarm_range /*goto*/ 0x03
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
endloop 0x59
|
|
|
|
// Main loop
|
|
label LABEL_MAINLOOP
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
set_target_chr CHR_P1P2
|
|
try_face_entity 0x0200, 0x0000, /*goto*/ 0x04
|
|
|
|
beginloop 0x04
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_stage_flag_eq STAGEFLAG_KING_SKEDAR_CLONE_EXISTS, TRUE, /*goto*/ 0x2d
|
|
if_stage_flag_eq STAGEFLAG_KING_MINISKEDAR_CLONE_EXISTS, TRUE, /*goto*/ 0x2d
|
|
|
|
// No clones exist
|
|
call_rng
|
|
if_rand_gt 200, /*goto*/ 0x79
|
|
if_var_a_lt 2, /*goto*/ 0x06
|
|
goto_next 0x2d
|
|
|
|
label 0x06
|
|
goto_next LABEL_FIRE_ROCKET
|
|
|
|
label 0x79
|
|
if_rand_gt 237, /*goto*/ 0x07
|
|
if_rand_gt 218, /*goto*/ 0x06
|
|
goto_next LABEL_SPAWN_MINISKEDAR
|
|
|
|
label 0x06
|
|
goto_next LABEL_SPAWN_SKEDAR
|
|
|
|
label 0x07
|
|
goto_next LABEL_CLOAK
|
|
|
|
label 0x2d
|
|
endloop 0x04
|
|
|
|
//
|
|
// Run to side and fire a rocket
|
|
//
|
|
label LABEL_FIRE_ROCKET
|
|
restart_timer
|
|
if_chr_distance_to_pad_lt CHR_SELF, 300, 0x0098, /*goto*/ 0x06
|
|
jog_to_pad 0x0098 // left side (when facing king)
|
|
goto_next 0x7f
|
|
|
|
label 0x06
|
|
restart_timer
|
|
jog_to_pad 0x0097 // right side
|
|
|
|
beginloop 0x7f
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_chr_stopped /*goto*/ 0x2d
|
|
endloop 0x7f
|
|
|
|
label 0x2d
|
|
set_self_flag_bank3 CHRFLAG3_00000040
|
|
|
|
beginloop 0x7a
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_in_disarm_range /*goto*/ 0x06
|
|
endloop 0x7a
|
|
|
|
label 0x06
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
try_aim_and_shoot_thing1 0x0220, 0x0000, /*goto*/ 0x70
|
|
label 0x70
|
|
say_quip CHR_JOANNA, 0x00, 0x19, 0x02, 0x01, BANK_0, 0x00, 0x00
|
|
try_aim_and_shoot_thing2 0x0200, 0x0000, /*goto*/ 0x7b
|
|
goto_next 0x2d
|
|
|
|
label 0x06
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
// Shoot successful
|
|
beginloop 0x7b
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_chr_stopped /*goto*/ 0x2d
|
|
endloop 0x7b
|
|
|
|
label 0x2d
|
|
add_var_a 1
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
//
|
|
// Spawn skedar
|
|
//
|
|
label LABEL_SPAWN_SKEDAR
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
set_var_a 0
|
|
restart_timer
|
|
animation 0x0350, 0, -1, 0x1010, CHR_SELF, 2
|
|
|
|
beginloop 0x66
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x66
|
|
|
|
label 0x2d
|
|
set_chr_flag_bankx CHR_KING_SKEDAR_SPAWNER, CHRFLAG0_00002000, BANK_0
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
//
|
|
// Spawn miniskedar
|
|
//
|
|
label LABEL_SPAWN_MINISKEDAR
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
set_var_a 0
|
|
restart_timer
|
|
animation 0x0350, 0, -1, 0x1010, CHR_SELF, 2
|
|
|
|
beginloop 0x67
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x67
|
|
|
|
label 0x2d
|
|
set_chr_flag_bankx CHR_KING_MINISKEDAR_SPAWNER, CHRFLAG0_00002000, BANK_0
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
//
|
|
// Cloak and warp to player for hand combat
|
|
//
|
|
label LABEL_CLOAK
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
set_var_a 0
|
|
restart_timer
|
|
animation 0x0350, 0, -1, 0x1010, CHR_SELF, 2
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
|
|
beginloop 0x68
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ LABEL_PLAYER_DEAD
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x68
|
|
|
|
label 0x2d
|
|
try_set_target_pad_to_something2 0x01, /*goto*/ 0x2d
|
|
try_set_target_pad_to_something2 0x02, /*goto*/ 0x2d
|
|
try_set_target_pad_to_something2 0x04, /*goto*/ 0x2d
|
|
goto_next 0x88
|
|
|
|
label 0x2d
|
|
chr_move_to_pad CHR_SELF, TARGET_PAD, 0x00, /*goto*/ 0x2d
|
|
goto_next 0x88
|
|
|
|
label 0x2d
|
|
set_countdown_timer 7
|
|
start_countdown_timer
|
|
|
|
label 0x8a
|
|
restart_timer
|
|
try_run_to_target_chr /*goto*/ 0x08
|
|
|
|
beginloop 0x08
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ 0x0b
|
|
if_timer_gt 20, /*goto*/ 0x89
|
|
if_chr_distance_lt 150, /*goto*/ 0x06
|
|
endloop 0x08
|
|
|
|
// Unreachable
|
|
label 0x2d
|
|
goto_next 0x88
|
|
|
|
// Every 20 frames - check countdown timer
|
|
label 0x89
|
|
if_countdown_timer_lt 1, /*goto*/ 0x2d
|
|
goto_first 0x8a
|
|
|
|
// Been chasing player while cloaked for 7 seconds
|
|
label 0x2d
|
|
goto_next 0x88
|
|
|
|
// Distance to player < 150
|
|
label 0x06
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
restart_timer
|
|
dprint "FACE TARGET\n"
|
|
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
|
|
cmd004f 246, /*goto*/ 0x06
|
|
stop_chr
|
|
try_face_entity 0x0200, 0x0000, /*goto*/ 0x09
|
|
|
|
beginloop 0x09
|
|
if_chr_death_animation_finished CHR_P1P2, /*goto*/ 0x0b
|
|
if_angle_to_target_chr_lt 10, /*goto*/ 0x06
|
|
cmd004f 246, /*goto*/ 0x06
|
|
if_timer_gt 60, /*goto*/ 0x06
|
|
endloop 0x09
|
|
|
|
label 0x2d
|
|
goto_next 0x87
|
|
|
|
label 0x06
|
|
dprint "PUNCH\n"
|
|
try_punch_or_kick /*goto*/ 0x0b
|
|
goto_next 0x87
|
|
|
|
beginloop 0x0b
|
|
if_chr_stopped /*goto*/ 0x2d
|
|
endloop 0x0b
|
|
|
|
label 0x2d
|
|
restart_timer
|
|
set_chr_cloaked CHR_SELF, TRUE, TRUE
|
|
|
|
beginloop 0x0d
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x0d
|
|
|
|
label 0x2d
|
|
label 0x88
|
|
stop_chr
|
|
chr_move_to_pad CHR_SELF, 0x0097, 0x00, /*goto*/ 0x87
|
|
chr_move_to_pad CHR_SELF, 0x0096, 0x00, /*goto*/ 0x87
|
|
chr_move_to_pad CHR_SELF, 0x0098, 0x00, /*goto*/ 0x87
|
|
|
|
label 0x87
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
restart_timer
|
|
|
|
beginloop 0x85
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x85
|
|
|
|
label 0x2d
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
// Unreachable - nothing jumps here
|
|
label 0x77
|
|
say_quip CHR_JOANNA, 0x01, 0xff, 0x03, 0xff, BANK_0, 0x00, 0x00
|
|
set_var_a 0
|
|
restart_timer
|
|
animation 0x0350, 0, -1, 0x1010, CHR_SELF, 2
|
|
|
|
beginloop 0x69
|
|
if_chr_shield_lt CHR_SELF, 20, /*goto*/ LABEL_LOW_SHIELD
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x69
|
|
|
|
label 0x2d
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
// Shield < 20
|
|
label LABEL_LOW_SHIELD
|
|
say_quip CHR_JOANNA, 0x02, 0xff, 0x00, 0xff, BANK_0, 0x00, 0x00
|
|
jog_to_pad 0x0096
|
|
|
|
beginloop 0x7d
|
|
if_chr_stopped /*goto*/ 0x06
|
|
endloop 0x7d
|
|
|
|
label 0x06
|
|
restart_timer
|
|
set_stage_flag STAGEFLAG_SPIKES_VULNERABLE
|
|
animation 0x0351, 0, -1, 0x1010, CHR_SELF, 2
|
|
|
|
beginloop 0x7e
|
|
if_stage_flag_eq STAGEFLAG_SPIKE_DESTROYED, TRUE, /*goto*/ 0x06
|
|
if_timer_gt 500, /*goto*/ 0x06
|
|
endloop 0x7e
|
|
|
|
label 0x06
|
|
stop_chr
|
|
unset_stage_flag STAGEFLAG_SPIKE_DESTROYED
|
|
if_stage_flag_eq STAGEFLAG_SPIKE4_DESTROYED, TRUE, /*goto*/ 0x83
|
|
if_stage_flag_eq STAGEFLAG_SPIKE3_DESTROYED, TRUE, /*goto*/ 0x82
|
|
if_stage_flag_eq STAGEFLAG_SPIKE2_DESTROYED, TRUE, /*goto*/ 0x81
|
|
if_stage_flag_eq STAGEFLAG_SPIKE1_DESTROYED, TRUE, /*goto*/ 0x80
|
|
|
|
set_shield 500
|
|
goto_next 0x06
|
|
|
|
label 0x80
|
|
set_shield 400
|
|
goto_next 0x06
|
|
|
|
label 0x81
|
|
set_shield 300
|
|
goto_next 0x06
|
|
|
|
label 0x82
|
|
set_shield 200
|
|
goto_next 0x06
|
|
|
|
label 0x83
|
|
set_shield 100
|
|
|
|
label 0x06
|
|
unset_stage_flag STAGEFLAG_SPIKES_VULNERABLE
|
|
goto_first LABEL_MAINLOOP
|
|
|
|
// Player dead
|
|
label LABEL_PLAYER_DEAD
|
|
goto_first 0x59
|
|
|
|
endfunction
|
|
|
|
func040e_king_skedar_spawner:
|
|
set_self_flag_bank3 CHRFLAG3_00000002
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00100000
|
|
|
|
beginloop 0x04
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x2d
|
|
if_chr_dying CHR_CLONE, /*goto*/ 0x2d
|
|
if_chr_unloaded CHR_CLONE, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
// Clone dead
|
|
label 0x2d
|
|
unset_stage_flag STAGEFLAG_KING_SKEDAR_CLONE_EXISTS
|
|
|
|
label 0x06
|
|
if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4f
|
|
reloop 0x04
|
|
|
|
label 0x4f
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
|
|
if_chr_dying CHR_CLONE, /*goto*/ 0x4f
|
|
if_chr_unloaded CHR_CLONE, /*goto*/ 0x4f
|
|
reloop 0x04
|
|
|
|
label 0x4f
|
|
try_spawn_clone2 CHR_SELF, FUNC_INIT_KING_SKEDAR_CLONE, 0x00000010, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
unset_self_flag_bankx CHRFLAG0_00002000, BANK_0
|
|
set_stage_flag STAGEFLAG_KING_SKEDAR_CLONE_EXISTS
|
|
yield
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func0410_init_king_skedar_clone:
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED
|
|
yield
|
|
try_draw_weapon MODEL_CHRMAULER, WEAPON_MAULER, 0x20000000, /*goto*/ 0x06
|
|
label 0x06
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
unset_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
set_function CHR_SELF, FUNC_INIT_UNARMED_SKEDAR
|
|
endfunction
|
|
|
|
func0411_king_miniskedar_spawner:
|
|
set_self_flag_bank3 CHRFLAG3_00000002
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_00100000
|
|
|
|
beginloop 0x04
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x2d
|
|
if_chr_dying CHR_CLONE, /*goto*/ 0x2d
|
|
if_chr_unloaded CHR_CLONE, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
// Clone dead
|
|
label 0x2d
|
|
unset_stage_flag STAGEFLAG_KING_MINISKEDAR_CLONE_EXISTS
|
|
label 0x06
|
|
if_self_flag_bankx_eq CHRFLAG0_00002000, TRUE, BANK_0, /*goto*/ 0x4f
|
|
reloop 0x04
|
|
|
|
// Clone dead and flag set
|
|
// Redundant check
|
|
label 0x4f
|
|
if_chr_death_animation_finished CHR_CLONE, /*goto*/ 0x4f
|
|
if_chr_dying CHR_CLONE, /*goto*/ 0x4f
|
|
if_chr_unloaded CHR_CLONE, /*goto*/ 0x4f
|
|
reloop 0x04
|
|
|
|
// Spawn clone
|
|
label 0x4f
|
|
try_spawn_clone2 CHR_SELF, FUNC_INIT_KING_MINISKEDAR_CLONE, 0x00000010, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
unset_self_flag_bankx CHRFLAG0_00002000, BANK_0
|
|
set_stage_flag STAGEFLAG_KING_MINISKEDAR_CLONE_EXISTS
|
|
yield
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func0412_init_king_miniskedar_clone:
|
|
set_self_flag_bank3 CHRFLAG3_00040000
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_SELF, CHRFLAG2_CLOAKED
|
|
yield
|
|
try_draw_weapon MODEL_CHRMAULER, WEAPON_MAULER, 0x20000000, /*goto*/ 0x06
|
|
label 0x06
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
unset_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_chr_cloaked CHR_SELF, FALSE, TRUE
|
|
set_function CHR_SELF, FUNC_INIT_MINISKEDAR
|
|
endfunction
|
|
|
|
func100f_spikes_vulnerability:
|
|
set_object_flag_bank1 OBJ_SPIKE_ML, 0x00200002
|
|
set_object_flag_bank1 OBJ_SPIKE_MR, 0x00200002
|
|
set_object_flag_bank1 OBJ_SPIKE_BL, 0x00200002
|
|
set_object_flag_bank1 OBJ_SPIKE_BR, 0x00200002
|
|
set_object_flag_bank1 OBJ_SPIKE_T, 0x00200002
|
|
|
|
beginloop 0x91
|
|
if_stage_flag_eq STAGEFLAG_IN_INTRO, FALSE, /*goto*/ 0x86
|
|
endloop 0x91
|
|
|
|
label 0x86
|
|
label 0x03
|
|
set_object_flag_bank0 OBJ_SPIKE_ML, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank0 OBJ_SPIKE_MR, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank0 OBJ_SPIKE_BL, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank0 OBJ_SPIKE_BR, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank0 OBJ_SPIKE_T, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank2 OBJ_SPIKE_ML, 0x00101000
|
|
set_object_flag_bank2 OBJ_SPIKE_MR, 0x00101000
|
|
set_object_flag_bank2 OBJ_SPIKE_BL, 0x00101000
|
|
set_object_flag_bank2 OBJ_SPIKE_BR, 0x00101000
|
|
set_object_flag_bank2 OBJ_SPIKE_T, 0x00101000
|
|
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_SPIKES_VULNERABLE, TRUE, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
unset_object_flag_bank0 OBJ_SPIKE_ML, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank0 OBJ_SPIKE_MR, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank0 OBJ_SPIKE_BL, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank0 OBJ_SPIKE_BR, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank2 OBJ_SPIKE_ML, 0x00101000
|
|
unset_object_flag_bank2 OBJ_SPIKE_MR, 0x00101000
|
|
unset_object_flag_bank2 OBJ_SPIKE_BL, 0x00101000
|
|
unset_object_flag_bank2 OBJ_SPIKE_BR, 0x00101000
|
|
|
|
if_stage_flag_eq STAGEFLAG_SPIKE1_DESTROYED, FALSE, /*goto*/ 0x08
|
|
if_stage_flag_eq STAGEFLAG_SPIKE2_DESTROYED, FALSE, /*goto*/ 0x08
|
|
if_stage_flag_eq STAGEFLAG_SPIKE3_DESTROYED, FALSE, /*goto*/ 0x08
|
|
if_stage_flag_eq STAGEFLAG_SPIKE4_DESTROYED, FALSE, /*goto*/ 0x08
|
|
unset_object_flag_bank0 OBJ_SPIKE_T, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank2 OBJ_SPIKE_T, 0x00101000
|
|
|
|
beginloop 0x08
|
|
if_stage_flag_eq STAGEFLAG_SPIKES_VULNERABLE, FALSE, /*goto*/ 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x2d
|
|
goto_first 0x03
|
|
|
|
endfunction
|
|
|
|
.macro wait_for_spike_destroyed spike shadow noshadow
|
|
beginloop 0x03
|
|
if_object_in_good_condition \spike, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
endloop 0x03
|
|
|
|
label 0x06
|
|
set_object_flag_bank1 \shadow, OBJECTFLAG1_INVISIBLE
|
|
unset_object_flag_bank1 \noshadow, OBJECTFLAG1_INVISIBLE
|
|
.endm
|
|
|
|
func1010_spike_ml:
|
|
wait_for_spike_destroyed OBJ_SPIKE_ML, OBJ_SPIKE_SHAD_ML, OBJ_SPIKE_NOSHAD_ML
|
|
set_function CHR_SELF, FUNC_UPDATE_SPIKE_STAGEFLAGS
|
|
endfunction
|
|
|
|
func1011_spike_mr:
|
|
wait_for_spike_destroyed OBJ_SPIKE_MR, OBJ_SPIKE_SHAD_MR, OBJ_SPIKE_NOSHAD_MR
|
|
set_function CHR_SELF, FUNC_UPDATE_SPIKE_STAGEFLAGS
|
|
endfunction
|
|
|
|
func1012_spike_bl:
|
|
wait_for_spike_destroyed OBJ_SPIKE_BL, OBJ_SPIKE_SHAD_BL, OBJ_SPIKE_NOSHAD_BL
|
|
set_function CHR_SELF, FUNC_UPDATE_SPIKE_STAGEFLAGS
|
|
endfunction
|
|
|
|
func1013_spike_br:
|
|
wait_for_spike_destroyed OBJ_SPIKE_BR, OBJ_SPIKE_SHAD_BR, OBJ_SPIKE_NOSHAD_BR
|
|
set_function CHR_SELF, FUNC_UPDATE_SPIKE_STAGEFLAGS
|
|
endfunction
|
|
|
|
func1014_spike_top:
|
|
wait_for_spike_destroyed OBJ_SPIKE_T, OBJ_SPIKE_SHAD_T, OBJ_SPIKE_NOSHAD_T
|
|
|
|
set_stage_flag STAGEFLAG_SPIKE5_DESTROYED
|
|
yield
|
|
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d
|
|
if_chr_dying CHR_JOANNA, /*goto*/ 0x2d
|
|
if_chr_unloaded CHR_JOANNA, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
|
|
if_chr_dying CHR_VELVET, /*goto*/ 0x2d
|
|
if_chr_unloaded CHR_VELVET, /*goto*/ 0x2d
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x06
|
|
set_invincible CHR_JOANNA
|
|
set_function CHR_SELF, FUNC_OUTRO
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func040f_update_spike_stageflags:
|
|
if_stage_flag_eq STAGEFLAG_SPIKE1_DESTROYED, TRUE, /*goto*/ 0x09
|
|
set_stage_flag STAGEFLAG_SPIKE1_DESTROYED
|
|
set_stage_flag STAGEFLAG_SPIKE_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x09
|
|
if_stage_flag_eq STAGEFLAG_SPIKE2_DESTROYED, TRUE, /*goto*/ 0x0b
|
|
set_stage_flag STAGEFLAG_SPIKE2_DESTROYED
|
|
set_stage_flag STAGEFLAG_SPIKE_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x0b
|
|
if_stage_flag_eq STAGEFLAG_SPIKE3_DESTROYED, TRUE, /*goto*/ 0x0c
|
|
set_stage_flag STAGEFLAG_SPIKE3_DESTROYED
|
|
set_stage_flag STAGEFLAG_SPIKE_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x0c
|
|
set_stage_flag STAGEFLAG_SPIKE4_DESTROYED
|
|
set_stage_flag STAGEFLAG_SPIKE_DESTROYED
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0c00_intro:
|
|
set_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
set_music_track MUSIC_SKEDARRUINS_INTRO
|
|
set_stage_flag STAGEFLAG_IN_INTRO
|
|
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_00080000
|
|
set_chr_flag_bank3 CHR_KING2, CHRFLAG3_HIDDEN
|
|
camera_movement 0x02e9
|
|
|
|
beginloop 0x08
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x86
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
camera_movement 0x02ea
|
|
|
|
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x02eb, -1, -1, 0x0600, CHR_JOANNA, 4
|
|
|
|
set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000
|
|
animation 0x02ec, -1, -1, 0x0600, CHR_ELVIS, 4
|
|
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_CALLISTONTG, WEAPON_NONE
|
|
|
|
beginloop 0x09
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x09
|
|
|
|
label 0x86
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
camera_movement 0x02ed
|
|
|
|
set_chr_flag_bank3 0x37, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x37, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x37, CHRFLAG2_00020000
|
|
animation 0x02ee, -1, -1, 0x0600, 0x37, 4
|
|
|
|
set_chr_flag_bank3 0x38, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x38, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x38, CHRFLAG2_00020000
|
|
animation 0x02ef, -1, -1, 0x0600, 0x38, 4
|
|
|
|
set_chr_flag_bank3 0x39, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x39, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x39, CHRFLAG2_00020000
|
|
animation 0x02f0, -1, -1, 0x0600, 0x39, 4
|
|
|
|
beginloop 0x0b
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x0b
|
|
|
|
label 0x86
|
|
unset_chr_flag_bank3 0x37, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x38, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x39, CHRFLAG3_UNPLAYABLE
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
camera_movement 0x02f1
|
|
|
|
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x02f2, -1, -1, 0x0600, CHR_JOANNA, 4
|
|
|
|
set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000
|
|
animation 0x02f3, -1, -1, 0x0600, CHR_ELVIS, 4
|
|
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_DEVASTATOR, WEAPON_NONE
|
|
|
|
beginloop 0x0c
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x0c
|
|
|
|
label 0x86
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
camera_movement 0x02f4
|
|
|
|
set_chr_flag_bank3 0x37, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x37, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x37, CHRFLAG2_00020000
|
|
animation 0x02f5, -1, -1, 0x0600, 0x37, 4
|
|
|
|
set_chr_flag_bank3 0x38, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x38, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x38, CHRFLAG2_00020000
|
|
animation 0x02f6, -1, -1, 0x0600, 0x38, 4
|
|
|
|
set_chr_flag_bank3 0x39, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x39, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x39, CHRFLAG2_00020000
|
|
animation 0x02f7, -1, -1, 0x0600, 0x39, 4
|
|
|
|
set_chr_flag_bank3 0x3a, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x3a, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x3a, CHRFLAG2_00020000
|
|
animation 0x02f8, -1, -1, 0x0600, 0x3a, 4
|
|
|
|
beginloop 0x0d
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x0d
|
|
|
|
label 0x86
|
|
unset_chr_flag_bank3 0x37, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x38, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x39, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x3a, CHRFLAG3_UNPLAYABLE
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
camera_movement 0x02f9
|
|
|
|
show_object 0x36
|
|
set_object_flag_bank1 0x36, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x36, OBJECTFLAG2_00000010
|
|
object_do_animation 0x02fa, 0x36, 0x01ff, 0xff
|
|
set_object_part_visible 0x36, FALSE
|
|
|
|
beginloop 0x0e
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x0e
|
|
|
|
label 0x86
|
|
hide_object 0x36
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
camera_movement 0x02fb
|
|
|
|
set_chr_flag_bank3 0x37, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x37, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x37, CHRFLAG2_00020000
|
|
animation 0x02fc, -1, -1, 0x0600, 0x37, 4
|
|
|
|
set_chr_flag_bank3 0x38, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x38, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x38, CHRFLAG2_00020000
|
|
animation 0x02fd, -1, -1, 0x0600, 0x38, 4
|
|
|
|
set_chr_flag_bank3 0x39, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x39, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x39, CHRFLAG2_00020000
|
|
animation 0x02fe, -1, -1, 0x0600, 0x39, 4
|
|
|
|
set_chr_flag_bank3 0x3a, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x3a, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 0x3a, CHRFLAG2_00020000
|
|
animation 0x02ff, -1, -1, 0x0600, 0x3a, 4
|
|
|
|
unset_chr_flag_bank3 CHR_KING2, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank3 CHR_KING2, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_KING2, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_KING2, CHRFLAG2_00020000
|
|
animation 0x0300, -1, -1, 0x0600, CHR_KING2, 4
|
|
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_JOANNA, WEAPON_FALCON2_SCOPE, WEAPON_NONE
|
|
|
|
beginloop 0x0f
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x0f
|
|
|
|
label 0x86
|
|
unset_chr_flag_bank3 0x37, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x38, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x39, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 0x3a, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_KING2, CHRFLAG3_UNPLAYABLE
|
|
camera_movement 0x0301
|
|
cmd0175 60
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
|
|
show_object 0x36
|
|
set_object_flag_bank1 0x36, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x36, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0302, 0x36, 0x04ff, 0xff
|
|
set_object_part_visible 0x36, FALSE
|
|
|
|
set_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x0303, -1, -1, 0x0600, CHR_JOANNA, 4
|
|
|
|
beginloop 0x10
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x10
|
|
|
|
label 0x86
|
|
unset_stage_flag STAGEFLAG_IN_INTRO
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_00080000
|
|
mute_channel CHANNEL_7
|
|
label 0x06
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_UNPLAYABLE
|
|
set_chr_flag_bank2 CHR_JOANNA, CHRFLAG2_00020000
|
|
animation 0x0303, -2, -1, 0x0600, CHR_JOANNA, 2
|
|
hide_object 0x36
|
|
remove_chr 0x37
|
|
remove_chr 0x38
|
|
remove_chr 0x39
|
|
remove_chr 0x3a
|
|
remove_chr CHR_KING2
|
|
unset_chr_flag_bank3 CHR_KING1, CHRFLAG3_HIDDEN
|
|
set_function CHR_KING1, FUNC_KING_WAITING
|
|
set_object_flag_bank1 0x2a, OBJECTFLAG1_04000000
|
|
set_object_flag_bank1 0x2b, OBJECTFLAG1_04000000
|
|
set_object_flag_bank1 0x2c, OBJECTFLAG1_04000000
|
|
set_object_flag_bank1 0x2d, OBJECTFLAG1_04000000
|
|
set_object_flag_bank1 0x2e, OBJECTFLAG1_04000000
|
|
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_HIDDEN
|
|
unset_chr_flag_bank3 CHR_COUNTEROP, CHRFLAG3_HIDDEN
|
|
restart_default_music
|
|
reset_ambience
|
|
enter_firstperson
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0414_outro_from_menu:
|
|
set_function CHR_ELVIS, GFUNC_IDLE
|
|
hide_object OBJ_SPIKE_ML
|
|
hide_object OBJ_SPIKE_MR
|
|
hide_object OBJ_SPIKE_BL
|
|
hide_object OBJ_SPIKE_BR
|
|
set_function CHR_SELF, FUNC_OUTRO
|
|
endfunction
|
|
|
|
func0414_outro:
|
|
if_chr_death_animation_finished CHR_JOANNA, /*goto*/ 0x2d
|
|
set_target_chr CHR_JOANNA
|
|
goto_next 0x06
|
|
|
|
label 0x2d
|
|
set_target_chr CHR_VELVET
|
|
|
|
label 0x06
|
|
set_chr_flag_bank3 TARGET_CHR, CHRFLAG3_KILLCOUNTABLE
|
|
camera_movement 0x044c
|
|
set_music_track MUSIC_SKEDARRUINS_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 0x05
|
|
remove_chr 0x06
|
|
remove_chr 0x07
|
|
remove_chr 0x08
|
|
remove_chr 0x09
|
|
remove_chr 0x0a
|
|
remove_chr 0x0b
|
|
remove_chr 0x0c
|
|
remove_chr 0x0d
|
|
remove_chr 0x0e
|
|
remove_chr 0x17
|
|
remove_chr 0x0f
|
|
remove_chr 0x10
|
|
remove_chr 0x0d
|
|
remove_chr 0x1c
|
|
remove_chr 0x18
|
|
remove_chr 0x19
|
|
remove_chr 0x1a
|
|
remove_chr 0x11
|
|
remove_chr 0x12
|
|
remove_chr 0x13
|
|
remove_chr 0x14
|
|
remove_chr 0x1b
|
|
remove_chr 0x15
|
|
remove_chr 0x16
|
|
remove_chr 0x1d
|
|
remove_chr 0x1e
|
|
remove_chr 0x1f
|
|
set_function CHR_KING1, GFUNC_IDLE
|
|
|
|
set_chr_flag_bank3 CHR_KING1, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_KING1, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_KING1, CHRFLAG2_00020000
|
|
animation 0x044d, -1, -1, 0x0600, CHR_KING1, 4
|
|
|
|
object_do_animation 0x044e, OBJ_SPIKE_T, 0x04ff, 0xff
|
|
set_stage_flag STAGEFLAG_IN_OUTRO
|
|
show_nonessential_chrs FALSE
|
|
|
|
beginloop 0x08
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x86
|
|
camera_movement 0x044f
|
|
|
|
set_chr_flag_bank3 CHR_KING1, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_KING1, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_KING1, CHRFLAG2_00020000
|
|
animation 0x0450, -1, -1, 0x0600, CHR_KING1, 4
|
|
|
|
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 0x0451, -1, -1, 0x0600, TARGET_CHR, 4
|
|
|
|
object_do_animation 0x0452, OBJ_SPIKE_T, 0x04ff, 0xff
|
|
|
|
show_object 0x37
|
|
set_object_flag_bank1 0x37, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x37, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0453, 0x37, 0x04ff, 0xff
|
|
|
|
show_object 0x38
|
|
set_object_flag_bank1 0x38, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x38, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0454, 0x38, 0x04ff, 0xff
|
|
|
|
show_object 0x39
|
|
set_object_flag_bank1 0x39, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x39, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0455, 0x39, 0x04ff, 0xff
|
|
|
|
show_object 0x3a
|
|
set_object_flag_bank1 0x3a, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x3a, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0456, 0x3a, 0x04ff, 0xff
|
|
|
|
show_object 0x3b
|
|
set_object_flag_bank1 0x3b, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x3b, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0457, 0x3b, 0x04ff, 0xff
|
|
show_object 0x3c
|
|
|
|
set_object_flag_bank1 0x3c, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x3c, OBJECTFLAG2_00000010
|
|
object_do_animation 0x0458, 0x3c, 0x04ff, 0xff
|
|
|
|
beginloop 0x09
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x09
|
|
|
|
label 0x86
|
|
hide_object 0x3c
|
|
camera_movement 0x02c7
|
|
|
|
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 0x02c8, -1, -1, 0x0600, TARGET_CHR, 4
|
|
|
|
set_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_UNPLAYABLE
|
|
unset_chr_flag_bank3 CHR_ELVIS, CHRFLAG3_HIDDEN
|
|
set_chr_flag_bank2 CHR_ELVIS, CHRFLAG2_00020000
|
|
animation 0x02c9, -1, -1, 0x0600, CHR_ELVIS, 4
|
|
|
|
show_object 0x23
|
|
set_object_flag_bank1 0x23, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x23, OBJECTFLAG2_00000010
|
|
object_do_animation 0x02ca, 0x23, 0x04ff, 0xff
|
|
|
|
show_object 0x24
|
|
set_object_flag_bank1 0x24, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x24, OBJECTFLAG2_00000010
|
|
object_do_animation 0x02cb, 0x24, 0x04ff, 0xff
|
|
|
|
show_object 0x25
|
|
set_object_flag_bank1 0x25, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x25, OBJECTFLAG2_00000010
|
|
object_do_animation 0x02cc, 0x25, 0x04ff, 0xff
|
|
|
|
show_object 0x26
|
|
set_object_flag_bank1 0x26, OBJECTFLAG1_04000000
|
|
set_object_flag_bank2 0x26, OBJECTFLAG2_00000010
|
|
object_do_animation 0x02cd, 0x26, 0x04ff, 0xff
|
|
|
|
beginloop 0x0b
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x86
|
|
|
|
label 0x2d
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
label 0x2d
|
|
endloop 0x0b
|
|
|
|
label 0x86
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_KILLCOUNTABLE
|
|
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_KILLCOUNTABLE
|
|
unset_stage_flag STAGEFLAG_IN_OUTRO
|
|
hide_object 0x23
|
|
hide_object 0x24
|
|
hide_object 0x25
|
|
hide_object 0x26
|
|
label 0x06
|
|
restart_default_music
|
|
reset_ambience
|
|
end_level
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0413_hide:
|
|
set_self_flag_bank3 CHRFLAG3_INVINCIBLE_TO_GUNFIRE
|
|
set_self_flag_bank3 CHRFLAG3_HIDDEN
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1015_msg_specialpillars:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0026, /*goto*/ 0x91
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0031, /*goto*/ 0x92
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0035, /*goto*/ 0x93
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x002b, /*goto*/ 0x94
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x000e, /*goto*/ 0x95
|
|
endloop 0x04
|
|
|
|
label 0x91
|
|
if_object_in_room 0x01, 0x0026, /*goto*/ 0x2d
|
|
if_object_in_room 0x02, 0x0026, /*goto*/ 0x2d
|
|
if_object_in_room 0x03, 0x0026, /*goto*/ 0x2d
|
|
goto_first 0x04
|
|
|
|
label 0x92
|
|
if_object_in_room 0x01, 0x0031, /*goto*/ 0x2d
|
|
if_object_in_room 0x02, 0x0031, /*goto*/ 0x2d
|
|
if_object_in_room 0x03, 0x0031, /*goto*/ 0x2d
|
|
goto_first 0x04
|
|
|
|
label 0x93
|
|
if_object_in_room 0x01, 0x0037, /*goto*/ 0x2d
|
|
if_object_in_room 0x02, 0x0037, /*goto*/ 0x2d
|
|
if_object_in_room 0x03, 0x0037, /*goto*/ 0x2d
|
|
goto_first 0x04
|
|
|
|
label 0x94
|
|
if_object_in_room 0x01, 0x002b, /*goto*/ 0x2d
|
|
if_object_in_room 0x02, 0x002b, /*goto*/ 0x2d
|
|
if_object_in_room 0x03, 0x002b, /*goto*/ 0x2d
|
|
goto_first 0x04
|
|
|
|
label 0x95
|
|
if_object_in_room 0x01, 0x000d, /*goto*/ 0x2d
|
|
if_object_in_room 0x02, 0x000d, /*goto*/ 0x2d
|
|
if_object_in_room 0x03, 0x000d, /*goto*/ 0x2d
|
|
goto_first 0x04
|
|
|
|
label 0x2d
|
|
speak CHR_P1P2, 0x421e, 0x73e0, CHANNEL_6, COLOR_09_BLUE // "This seems to be one of the special pillars."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1016_msg_powersmoreconstant:
|
|
restart_timer
|
|
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0077, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
speak CHR_P1P2, 0x421f, 0x73e1, CHANNEL_6, COLOR_09_BLUE // "The power's more constant in this area. The Inner ..."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1017_msg_skedararmy:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0082, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
speak CHR_P1P2, 0x4220, 0x73e2, CHANNEL_6, COLOR_09_BLUE // "OH, NO!!! A Skedar army in suspended animation!"
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1018_msg_cutoffthehead:
|
|
beginloop 0x04
|
|
consider_coop_for_p1p2_chr CHR_SELF
|
|
if_chr_in_room CHR_P1P2, 0x00, 0x0088, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 120, /*goto*/ 0x2d
|
|
endloop 0x08
|
|
|
|
label 0x2d
|
|
speak CHR_P1P2, 0x4221, 0x73e3, CHANNEL_6, COLOR_09_BLUE // "Okay, this is it... Cut off the head and the body ..."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1019_blow_pillars:
|
|
// Wait until all pillars marked
|
|
beginloop 0x04
|
|
if_stage_flag_eq STAGEFLAG_PILLAR1_MARKED, TRUE, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR2_MARKED, TRUE, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_PILLAR3_MARKED, TRUE, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
// Wait 10 seconds
|
|
label 0x2d
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 600, /*goto*/ 0x2d
|
|
endloop 0x08
|
|
|
|
// 1
|
|
label 0x2d
|
|
unset_object_flag_bank0 0x27, OBJECTFLAG0_00000100
|
|
unset_object_flag_bank0 0x28, OBJECTFLAG0_00000100
|
|
unset_object_flag_bank0 0x29, OBJECTFLAG0_00000100
|
|
unset_object_flag_bank0 OBJ_PILLAR1, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank0 0x27, OBJECTFLAG0_INVINCIBLE
|
|
destroy_object 0x27
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
restart_timer
|
|
|
|
beginloop 0x09
|
|
if_timer_gt 180, /*goto*/ 0x2d
|
|
endloop 0x09
|
|
|
|
// 2
|
|
label 0x2d
|
|
unset_object_flag_bank0 OBJ_PILLAR2, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank0 0x28, OBJECTFLAG0_INVINCIBLE
|
|
destroy_object 0x28
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
restart_timer
|
|
|
|
beginloop 0x0b
|
|
if_timer_gt 180, /*goto*/ 0x2d
|
|
endloop 0x0b
|
|
|
|
// 3
|
|
label 0x2d
|
|
unset_object_flag_bank0 OBJ_PILLAR3, OBJECTFLAG0_INVINCIBLE
|
|
unset_object_flag_bank0 0x29, OBJECTFLAG0_INVINCIBLE
|
|
destroy_object 0x29
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
yield
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1004_setup_pillars:
|
|
yield
|
|
shuffle_ruins_pillars OBJ_PILLAR1, OBJ_PILLAR2, OBJ_PILLAR3, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x27, 0x28, 0x29, 0x2f, 0x30, 0x31, 0x32, 0x33
|
|
yield
|
|
set_object_flag_bank2 OBJ_PILLAR1, OBJECTFLAG2_RTRACKED_YELLOW
|
|
set_object_flag_bank2 OBJ_PILLAR2, OBJECTFLAG2_RTRACKED_YELLOW
|
|
set_object_flag_bank2 OBJ_PILLAR3, OBJECTFLAG2_RTRACKED_YELLOW
|
|
set_object_flag_bank0 OBJ_PILLAR1, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank0 OBJ_PILLAR2, OBJECTFLAG0_INVINCIBLE
|
|
set_object_flag_bank0 OBJ_PILLAR3, OBJECTFLAG0_INVINCIBLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func101d_remove_pillar_shadow:
|
|
beginloop 0x04
|
|
// One of the pillars, but with a different tag
|
|
if_object_in_good_condition 0x41, /*goto*/ 0x2d
|
|
|
|
// Destroyed - remove shadow
|
|
label 0x06
|
|
hide_object 0x3d
|
|
hide_object 0x3e
|
|
unset_object_flag_bank1 0x4e, OBJECTFLAG1_INVISIBLE
|
|
unset_object_flag_bank1 0x4f, OBJECTFLAG1_INVISIBLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x2d
|
|
endloop 0x04
|
|
|
|
// Unreachable
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func0c00_intro_sounds:
|
|
label 0xda
|
|
if_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_00080000, /*goto*/ 0xdb
|
|
yield
|
|
goto_first 0xda
|
|
|
|
label 0xdb
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_00080000
|
|
|
|
.macro wait_until_with_stageflag time loopid
|
|
beginloop \loopid
|
|
if_stage_flag_eq STAGEFLAG_IN_INTRO, FALSE, /*goto*/ 0x86
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
if_timer_gt \time, /*goto*/ 0x06
|
|
endloop \loopid
|
|
label 0x06
|
|
.endm
|
|
|
|
// @bug: Several loops in this function don't check the stageflag.
|
|
// It happens so frequently that I'm using this macro to handle it.
|
|
.macro wait_until time loopid
|
|
beginloop \loopid
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
if_timer_gt \time, /*goto*/ 0x06
|
|
endloop \loopid
|
|
label 0x06
|
|
.endm
|
|
|
|
label 0x2d
|
|
restart_timer
|
|
|
|
wait_until_with_stageflag 100, 0x91
|
|
speak CHR_JOANNA, 0x4222, 0x748d, CHANNEL_10, COLOR_04_ORANGE // "This is the Skedar fanatics' most holy place. They..."
|
|
|
|
wait_until_with_stageflag 770, 0xa4
|
|
play_sound 0x0433, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 800, 0x92
|
|
speak CHR_JOANNA, 0x4223, 0x748e, CHANNEL_10, COLOR_09_BLUE // "So let me get this straight - it's holy. But there..."
|
|
|
|
wait_until_with_stageflag 1018, 0xa5
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1090, 0xa6
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1148, 0xa7
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1210, 0x93
|
|
speak CHR_JOANNA, 0x4224, 0x748f, CHANNEL_10, COLOR_04_ORANGE // "Yes. In all of the time that we Maians fought the ..."
|
|
|
|
wait_until_with_stageflag 1230, 0xa8
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until 1270, 0xc5
|
|
play_sound 0x0531, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1274, 0xa9
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1330, 0xaa
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1375, 0xab
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1435, 0xac
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1490, 0xad
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1600, 0xc7
|
|
play_sound 0x05c7, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1670, 0xc8
|
|
play_sound 0x05c6, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1710, 0xae
|
|
play_sound 0x05c5, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 1840, 0xaf
|
|
play_sound 0x05cc, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2040, 0xb7
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2065, 0xb0
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2090, 0xb8
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2115, 0xb1
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until 2050, 0xc6 // time is out of order
|
|
play_sound 0x0530, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2140, 0xb9
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2180, 0xb2
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2220, 0xb3
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2250, 0xb4
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2290, 0xb5
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2340, 0xb6
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 2650, 0x94
|
|
speak CHR_JOANNA, 0x4225, 0x7490, CHANNEL_10, COLOR_09_BLUE // "Then we have to be certain that no fanatics surviv..."
|
|
|
|
wait_until_with_stageflag 3250, 0x95
|
|
speak CHR_JOANNA, 0x4226, 0x7491, CHANNEL_10, COLOR_04_ORANGE // "If you're caught on the ground when the fleet gets..."
|
|
|
|
wait_until 3330, 0xc3
|
|
play_sound 0x0530, CHANNEL_10
|
|
|
|
wait_until 3535, 0xc4
|
|
play_sound 0x0531, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 3600, 0x96
|
|
mute_channel CHANNEL_7
|
|
speak CHR_JOANNA, 0x4227, 0x7492, CHANNEL_10, COLOR_09_BLUE // "That's a mistake I don't intend to make."
|
|
|
|
wait_until 4040, 0xc0
|
|
play_sound 0x05a0, CHANNEL_10
|
|
|
|
wait_until 4158, 0xc1
|
|
play_sound 0x05a1, CHANNEL_10
|
|
|
|
wait_until 4236, 0xc2
|
|
play_sound 0x0529, CHANNEL_10
|
|
|
|
wait_until 4580, 0xbc
|
|
play_sound 0x01d8, CHANNEL_10
|
|
|
|
wait_until 4610, 0xbd
|
|
play_sound 0x01da, CHANNEL_10
|
|
|
|
wait_until 4630, 0xbe
|
|
play_sound 0x80f6, CHANNEL_10
|
|
|
|
wait_until 4678, 0xbf
|
|
play_sound 0x01db, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 4675, 0x97
|
|
play_sound 0x0162, CHANNEL_10
|
|
|
|
wait_until_with_stageflag 4750, 0xbb
|
|
play_sound 0x0161, CHANNEL_10
|
|
|
|
mute_channel CHANNEL_0
|
|
mute_channel CHANNEL_1
|
|
mute_channel CHANNEL_2
|
|
mute_channel CHANNEL_3
|
|
mute_channel CHANNEL_4
|
|
mute_channel CHANNEL_5
|
|
mute_channel CHANNEL_6
|
|
mute_channel CHANNEL_7
|
|
label 0x86
|
|
mute_channel CHANNEL_10
|
|
goto_first 0xda
|
|
|
|
endfunction
|
|
|
|
func0414_outro_sounds:
|
|
// The kill countable flag is probably just used to track which player
|
|
// destroyed the final spike so they can be shown in the outro.
|
|
label 0xda
|
|
if_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_KILLCOUNTABLE, /*goto*/ 0xdb
|
|
if_chr_flag_bank3 CHR_VELVET, CHRFLAG3_KILLCOUNTABLE, /*goto*/ 0xdc
|
|
yield
|
|
goto_first 0xda
|
|
|
|
label 0xdb
|
|
set_target_chr CHR_JOANNA
|
|
goto_next 0x2d
|
|
|
|
label 0xdc
|
|
set_target_chr CHR_VELVET
|
|
goto_next 0x2d
|
|
|
|
.macro outro_wait_until_with_stageflag time loopid
|
|
beginloop \loopid
|
|
if_stage_flag_eq STAGEFLAG_IN_OUTRO, FALSE, /*goto*/ 0x86
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
if_timer_gt \time, /*goto*/ 0x06
|
|
endloop \loopid
|
|
label 0x06
|
|
.endm
|
|
|
|
.macro outro_wait_until time loopid
|
|
beginloop \loopid
|
|
if_controller_button_pressed /*goto*/ 0x86
|
|
if_timer_gt \time, /*goto*/ 0x06
|
|
endloop \loopid
|
|
label 0x06
|
|
.endm
|
|
|
|
label 0x2d
|
|
unset_chr_flag_bank3 CHR_JOANNA, CHRFLAG3_KILLCOUNTABLE
|
|
unset_chr_flag_bank3 CHR_VELVET, CHRFLAG3_KILLCOUNTABLE
|
|
restart_timer
|
|
|
|
|
|
outro_wait_until_with_stageflag 40, 0xd5
|
|
play_sound 0x0067, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 80, 0x9e
|
|
play_sound 0x0067, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 120, 0x9f
|
|
play_sound 0x0067, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 160, 0xa0
|
|
play_sound 0x05c0, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 180, 0xa1
|
|
play_sound 0x052d, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 230, 0x9b
|
|
speak CHR_JOANNA, 0x4228, 0x74de, CHANNEL_10, COLOR_09_BLUE // "Yesss..."
|
|
|
|
outro_wait_until_with_stageflag 470, 0xa9
|
|
play_sound 0x8099, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 494, 0xa2
|
|
play_sound 0x8098, CHANNEL_10
|
|
play_sound 0x00f6, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 520, 0xa8
|
|
play_sound 0x809b, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 540, 0xa3
|
|
play_sound 0x80a2, CHANNEL_10
|
|
play_sound 0x00f6, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 550, 0xd6
|
|
play_sound 0x77c8, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 600, 0xaa
|
|
play_sound 0x80a3, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 616, 0xa4
|
|
play_sound 0x809f, CHANNEL_10
|
|
play_sound 0x00f6, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 700, 0xa5
|
|
play_sound 0x80a1, CHANNEL_10
|
|
play_sound 0x00f6, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 760, 0xcd
|
|
play_sound 0x80a3, CHANNEL_10
|
|
|
|
outro_wait_until 780, 0xae
|
|
fade_to_color 0x000000ff, 80
|
|
|
|
outro_wait_until_with_stageflag 790, 0xa6
|
|
play_sound 0x809c, CHANNEL_10
|
|
play_sound 0x00f6, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 820, 0xcc
|
|
play_sound 0x80a2, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 860, 0xa7
|
|
play_sound 0x80a3, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 880, 0xce
|
|
play_sound 0x77da, CHANNEL_10
|
|
|
|
outro_wait_until 920, 0xaf
|
|
fade_to_color 0xffffffff, 0
|
|
fade_to_color 0x00000000, 120
|
|
set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon TARGET_CHR, WEAPON_NONE, WEAPON_NONE
|
|
set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE
|
|
|
|
outro_wait_until_with_stageflag 1680, 0x91
|
|
mute_channel CHANNEL_10
|
|
speak CHR_JOANNA, 0x4229, 0x7493, CHANNEL_10, COLOR_04_ORANGE // "Joanna! Joanna!"
|
|
|
|
outro_wait_until_with_stageflag 2020, 0x9c
|
|
speak CHR_JOANNA, 0x4236, 0x7755, CHANNEL_10, COLOR_04_ORANGE // "Where are you? Are you hurt?"
|
|
|
|
outro_wait_until_with_stageflag 2206, 0x92
|
|
speak CHR_JOANNA, 0x422a, 0x7494, CHANNEL_10, COLOR_09_BLUE // "Elvis! Elvis! Over here."
|
|
|
|
outro_wait_until_with_stageflag 2625, 0x93
|
|
speak CHR_JOANNA, 0x422b, 0x7495, CHANNEL_10, COLOR_04_ORANGE // "No problem. Grab my arms - we'll get you out in no..."
|
|
|
|
outro_wait_until_with_stageflag 2810, 0xd4
|
|
play_sound 0x0531, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 2895, 0x94
|
|
speak CHR_JOANNA, 0x422c, 0x7496, CHANNEL_10, COLOR_09_BLUE // "No, quick! Give me your gun!"
|
|
|
|
outro_wait_until_with_stageflag 3160, 0xca
|
|
set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE
|
|
yield
|
|
set_cutscene_weapon CHR_ELVIS, WEAPON_PHOENIX, WEAPON_NONE
|
|
|
|
outro_wait_until_with_stageflag 3280, 0xcb
|
|
set_cutscene_weapon TARGET_CHR, WEAPON_PHOENIX, WEAPON_NONE
|
|
set_cutscene_weapon CHR_ELVIS, WEAPON_NONE, WEAPON_NONE
|
|
|
|
outro_wait_until_with_stageflag 3290, 0x95
|
|
speak CHR_JOANNA, 0x422d, 0x7497, CHANNEL_10, COLOR_09_BLUE // "Will! You! Just! Let! Go!"
|
|
|
|
outro_wait_until_with_stageflag 3420, 0xcf
|
|
set_chr_shooting_in_cutscene TARGET_CHR, TRUE
|
|
yield
|
|
yield
|
|
set_chr_shooting_in_cutscene TARGET_CHR, FALSE
|
|
play_sound 0x052e, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 3445, 0xd0
|
|
set_chr_shooting_in_cutscene TARGET_CHR, TRUE
|
|
yield
|
|
yield
|
|
set_chr_shooting_in_cutscene TARGET_CHR, FALSE
|
|
|
|
outro_wait_until_with_stageflag 3470, 0xd1
|
|
set_chr_shooting_in_cutscene TARGET_CHR, TRUE
|
|
yield
|
|
yield
|
|
set_chr_shooting_in_cutscene TARGET_CHR, FALSE
|
|
|
|
outro_wait_until_with_stageflag 3495, 0xd2
|
|
set_chr_shooting_in_cutscene TARGET_CHR, TRUE
|
|
yield
|
|
yield
|
|
set_chr_shooting_in_cutscene TARGET_CHR, FALSE
|
|
|
|
outro_wait_until_with_stageflag 3520, 0xd3
|
|
set_chr_shooting_in_cutscene TARGET_CHR, TRUE
|
|
yield
|
|
yield
|
|
set_chr_shooting_in_cutscene TARGET_CHR, FALSE
|
|
play_sound_from_object2 CHANNEL_6, 0x25, 0x052d, 0x00, 0x00
|
|
|
|
outro_wait_until_with_stageflag 3600, 0xd7
|
|
play_sound 0x77c9, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 3880, 0xd8
|
|
play_sound 0x0427, CHANNEL_10
|
|
|
|
outro_wait_until_with_stageflag 3990, 0x96
|
|
speak CHR_JOANNA, 0x422e, 0x7498, CHANNEL_10, COLOR_04_ORANGE // "I managed to get the fleet to stop the bombardment..."
|
|
|
|
outro_wait_until_with_stageflag 4425, 0x97
|
|
speak CHR_JOANNA, 0x422f, 0x7499, CHANNEL_10, COLOR_09_BLUE // "I'd have got out in time if that one hadn't grabbe..."
|
|
|
|
outro_wait_until_with_stageflag 4650, 0x98
|
|
speak CHR_JOANNA, 0x4230, 0x749a, CHANNEL_10, COLOR_04_ORANGE // "Of course, Joanna, of course."
|
|
|
|
outro_wait_until_with_stageflag 4825, 0x99
|
|
speak CHR_JOANNA, 0x4231, 0x749b, CHANNEL_10, COLOR_09_BLUE // "No, I would have."
|
|
|
|
outro_wait_until_with_stageflag 4960, 0x9a
|
|
speak CHR_JOANNA, 0x4232, 0x749c, CHANNEL_10, COLOR_04_ORANGE // "I believe you."
|
|
|
|
outro_wait_until_with_stageflag 5560, 0x9d
|
|
play_sound 0x0161, CHANNEL_7
|
|
|
|
label 0x86
|
|
mute_channel CHANNEL_10
|
|
mute_channel CHANNEL_7
|
|
mute_channel CHANNEL_6
|
|
goto_first 0xda
|
|
|
|
endfunction
|
|
|
|
func1020_show_phoenix:
|
|
// Show Phoenix once pillars destroyed
|
|
beginloop 0x04
|
|
if_object_in_good_condition 0x2a, /*goto*/ 0x2d
|
|
if_object_in_good_condition 0x2b, /*goto*/ 0x2d
|
|
if_object_in_good_condition 0x2c, /*goto*/ 0x2d
|
|
if_object_in_good_condition 0x2d, /*goto*/ 0x2d
|
|
if_object_in_good_condition 0x2e, /*goto*/ 0x2d
|
|
unset_object_flag_bank0 OBJ_PHOENIX1, OBJECTFLAG0_00100000
|
|
unset_object_flag_bank1 OBJ_PHOENIX1, OBJECTFLAG1_INVISIBLE
|
|
unset_object_flag_bank0 OBJ_PHOENIX2, OBJECTFLAG0_00100000
|
|
unset_object_flag_bank1 OBJ_PHOENIX2, OBJECTFLAG1_INVISIBLE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
label 0x2d
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
/**
|
|
* Handle the mine hidden inside the first ravine debris.
|
|
*/
|
|
func1021_handle_mine:
|
|
yield
|
|
if_difficulty_lt DIFF_SA, /*goto*/ 0x2d
|
|
|
|
// SA and PA
|
|
hide_object OBJ_REMOTEMINE
|
|
|
|
// A
|
|
label 0x2d
|
|
destroy_object OBJ_REMOTEMINE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1022_armyroom_exitdoors:
|
|
yield
|
|
set_object_flag_bank1 0x45, OBJECTFLAG1_08000000
|
|
set_object_flag_bank1 0x46, OBJECTFLAG1_10000000
|
|
if_difficulty_gt DIFF_SA, /*goto*/ 0x2d
|
|
|
|
// A and SA
|
|
beginloop 0x91
|
|
if_objective_complete 0, /*goto*/ 0x06
|
|
endloop 0x91
|
|
|
|
label 0x06
|
|
unset_object_flag_bank1 0x45, OBJECTFLAG1_08000000
|
|
unset_object_flag_bank1 0x46, OBJECTFLAG1_10000000
|
|
|
|
// All difficulties
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
unregistered_function1:
|
|
restart_timer
|
|
|
|
beginloop 0x04
|
|
if_timer_gt 300, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
chr_drop_weapon CHR_JOANNA
|
|
message CHR_JOANNA, 0x421a // "Target Amplifier placed incorrectly."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
/**
|
|
* Used to print whether the puzzle rock is pushable or not.
|
|
*/
|
|
unregistered_function2:
|
|
beginloop 0x04
|
|
if_object_flag_bank2 OBJ_PUZZLEROCK, OBJECTFLAG2_PUSHABLE, /*goto*/ 0x2d
|
|
dprint "CANT PUSH\n"
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
dprint "CAN PUSH\n"
|
|
endloop 0x04
|
|
|
|
endfunction
|
|
|
|
func1024_check_grenades_wasted:
|
|
beginloop 0x04
|
|
if_ammo_quantity_lt CHR_JOANNA, AMMOTYPE_DEVASTATOR, 1, /*goto*/ 0x2d
|
|
reloop 0x04
|
|
|
|
label 0x2d
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
|
|
if_ammo_quantity_lt CHR_VELVET, AMMOTYPE_DEVASTATOR, 1, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
label 0x2d
|
|
restart_timer
|
|
|
|
beginloop 0x91
|
|
if_timer_gt 240, /*goto*/ 0x2d
|
|
endloop 0x91
|
|
|
|
label 0x2d
|
|
if_object_in_good_condition 0x4d, /*goto*/ 0x06
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x06
|
|
label 0x2d
|
|
restart_timer
|
|
|
|
beginloop 0x08
|
|
if_timer_gt 60, /*goto*/ 0x09
|
|
endloop 0x08
|
|
|
|
beginloop 0x09
|
|
if_object_in_good_condition 0x4d, /*goto*/ 0x2d
|
|
|
|
// Blown up using other means (eg. Phoenix or all guns cheat)
|
|
unset_stage_flag STAGEFLAG_GRENADES_WASTED
|
|
message CHR_JOANNA, 0x4235 // "Alternative entrance to Shrine created."
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_GRENADES_WASTED, TRUE, /*goto*/ 0x2d
|
|
message CHR_JOANNA, 0x4234 // "Grenade ammo used up - can't enter Shrine."
|
|
set_stage_flag STAGEFLAG_GRENADES_WASTED
|
|
label 0x2d
|
|
endloop 0x09
|
|
|
|
endfunction
|
|
|
|
func1023_setup_rtracker:
|
|
yield
|
|
set_object_flag_bank2 OBJ_PHOENIX1, OBJECTFLAG2_RTRACKED_BLUE
|
|
set_object_flag_bank2 OBJ_PHOENIX2, OBJECTFLAG2_RTRACKED_BLUE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1427_setup_lighting:
|
|
yield
|
|
set_lighting 0x0004, 0x05, 0x01
|
|
set_lighting 0x0004, 0x06, 0x01
|
|
set_lighting 0x0005, 0x05, 0x01
|
|
set_lighting 0x0005, 0x06, 0x01
|
|
set_lighting 0x0006, 0x05, 0x01
|
|
set_lighting 0x0006, 0x06, 0x01
|
|
set_lighting 0x0007, 0x05, 0x01
|
|
set_lighting 0x0007, 0x06, 0x01
|
|
set_lighting 0x0008, 0x05, 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 0x0017, 0x05, 0x01
|
|
set_lighting 0x0017, 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, 0x05, 0x01
|
|
set_lighting 0x001b, 0x05, 0x01
|
|
set_lighting 0x001b, 0x06, 0x01
|
|
set_lighting 0x001d, 0x05, 0x01
|
|
set_lighting 0x001d, 0x06, 0x01
|
|
set_lighting 0x001e, 0x05, 0x01
|
|
set_lighting 0x001e, 0x06, 0x01
|
|
set_lighting 0x001f, 0x05, 0x01
|
|
set_lighting 0x001f, 0x06, 0x01
|
|
set_lighting 0x0020, 0x05, 0x01
|
|
set_lighting 0x0020, 0x06, 0x01
|
|
set_lighting 0x0021, 0x05, 0x01
|
|
set_lighting 0x0021, 0x06, 0x01
|
|
set_lighting 0x0022, 0x05, 0x01
|
|
set_lighting 0x0022, 0x06, 0x01
|
|
set_lighting 0x0023, 0x05, 0x01
|
|
set_lighting 0x0023, 0x06, 0x01
|
|
set_lighting 0x0024, 0x05, 0x01
|
|
set_lighting 0x0024, 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 0x002d, 0x05, 0x01
|
|
set_lighting 0x002d, 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 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, 0x05, 0x01
|
|
set_lighting 0x003e, 0x06, 0x01
|
|
set_lighting 0x003f, 0x05, 0x01
|
|
set_lighting 0x003f, 0x06, 0x01
|
|
set_lighting 0x0040, 0x05, 0x01
|
|
set_lighting 0x0040, 0x06, 0x01
|
|
set_lighting 0x0041, 0x05, 0x01
|
|
set_lighting 0x0041, 0x06, 0x01
|
|
set_lighting 0x0042, 0x05, 0x01
|
|
set_lighting 0x0042, 0x06, 0x01
|
|
set_lighting 0x0043, 0x05, 0x01
|
|
set_lighting 0x0043, 0x06, 0x01
|
|
set_lighting 0x0044, 0x05, 0x01
|
|
set_lighting 0x0044, 0x06, 0x01
|
|
set_lighting 0x0045, 0x05, 0x01
|
|
set_lighting 0x0046, 0x05, 0x01
|
|
set_lighting 0x0047, 0x05, 0x01
|
|
set_lighting 0x0047, 0x06, 0x01
|
|
set_lighting 0x0049, 0x05, 0x01
|
|
set_lighting 0x0049, 0x06, 0x01
|
|
set_lighting 0x004a, 0x05, 0x01
|
|
set_lighting 0x004a, 0x06, 0x01
|
|
set_lighting 0x004b, 0x06, 0x01
|
|
set_lighting 0x0048, 0x06, 0x01
|
|
set_lighting 0x004f, 0x05, 0x01
|
|
set_lighting 0x0058, 0x05, 0x01
|
|
set_lighting 0x0059, 0x05, 0x01
|
|
set_lighting 0x0059, 0x06, 0x01
|
|
set_lighting 0x0032, 0x05, 0x01
|
|
set_lighting 0x0034, 0x05, 0x01
|
|
set_lighting 0x0035, 0x05, 0x01
|
|
set_lighting 0x0036, 0x05, 0x01
|
|
set_lighting 0x0037, 0x05, 0x01
|
|
set_lighting 0x0038, 0x05, 0x01
|
|
set_lighting 0x0032, 0x06, 0x01
|
|
set_lighting 0x0034, 0x06, 0x01
|
|
set_lighting 0x0035, 0x06, 0x01
|
|
set_lighting 0x0036, 0x06, 0x01
|
|
set_lighting 0x0037, 0x06, 0x01
|
|
set_lighting 0x0038, 0x06, 0x01
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1025_unlock_doors_for_buddy:
|
|
yield
|
|
if_chr_death_animation_finished CHR_VELVET, /*goto*/ 0x2d
|
|
|
|
// Co-op mode
|
|
// Wait for pillars objective
|
|
beginloop 0x91
|
|
if_objective_complete 0, /*goto*/ 0x2d
|
|
reloop 0x91
|
|
|
|
// Unlock doors repeatedly
|
|
label 0x2d
|
|
unlock_door 0x0d, 0x02
|
|
unlock_door 0x0e, 0x02
|
|
unlock_door 0x0f, 0x02
|
|
unlock_door 0x10, 0x02
|
|
unlock_door 0x45, 0x80
|
|
unlock_door 0x46, 0x80
|
|
endloop 0x91
|
|
|
|
// Buddy doesn't exist
|
|
label 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1426_setup_portals:
|
|
yield
|
|
set_portal_flag 0x0072, 0x04
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
func1028_buddybridge:
|
|
yield
|
|
|
|
// Wait for camera to finish
|
|
beginloop 0x59
|
|
if_camera_animating /*goto*/ 0x2d
|
|
goto_next 0x2e
|
|
|
|
label 0x2d
|
|
endloop 0x59
|
|
|
|
// Wait 5 seconds
|
|
label 0x2e
|
|
restart_timer
|
|
|
|
beginloop 0x04
|
|
if_timer_gt 300, /*goto*/ 0x2d
|
|
endloop 0x04
|
|
|
|
// This flag is set by global functions
|
|
label 0x2d
|
|
if_stage_flag_eq STAGEFLAG_AI_BUDDY_EXISTS, FALSE, /*goto*/ 0x2d
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
|
|
// Flag not set - so this is solo mode
|
|
// Remove the bridge and barricade over the first ravine
|
|
label 0x2d
|
|
hide_object OBJ_BUDDYBRIDGE
|
|
hide_object OBJ_BUDDYBARRICADE
|
|
set_function CHR_SELF, GFUNC_IDLE
|
|
endfunction
|
|
|
|
functions:
|
|
register_function func0401_init_unarmed_skedar 0x0401
|
|
register_function func0402_unarmed_skedar 0x0402
|
|
register_function func0403_init_miniskedar 0x0403
|
|
register_function func0404_miniskedar 0x0404
|
|
register_function func0405_puzzleroom_miniskedar_waiting 0x0405
|
|
register_function func0404_miniskedar_spawner 0x0406
|
|
register_function func0407_init_cloaked_skedar 0x0407
|
|
register_function func0408_cloaked_skedar 0x0408
|
|
register_function func0409_reaper_slayer_skedar 0x0409
|
|
register_function func040a_init_reaper_slayer_skedar 0x040a
|
|
register_function func040b_mauler_skedar 0x040b
|
|
register_function func040c_king_waiting 0x040c
|
|
register_function func040d_king_combat 0x040d
|
|
register_function func040e_king_skedar_spawner 0x040e
|
|
register_function func040f_update_spike_stageflags 0x040f
|
|
register_function func0410_init_king_skedar_clone 0x0410
|
|
register_function func0411_king_miniskedar_spawner 0x0411
|
|
register_function func0412_init_king_miniskedar_clone 0x0412
|
|
register_function func0413_hide 0x0413
|
|
register_function func0414_outro 0x0414
|
|
|
|
register_function func0c00_intro 0x0c00
|
|
register_function func0414_outro_from_menu 0x0c01
|
|
|
|
register_function func1400_setup_counterop 0x1400
|
|
register_function func1001_objectives_failed_msg 0x1001
|
|
register_function func0c00_intro 0x1002
|
|
register_function func1003_remove_random_skedar 0x1003
|
|
register_function func1004_setup_pillars 0x1004
|
|
register_function func1005_5e0c 0x1005
|
|
register_function func1006_bridge 0x1006
|
|
register_function func1007_bug_throws_joanna 0x1007
|
|
register_function func1008_lock_door 0x1008
|
|
register_function func1009_altar 0x1009
|
|
register_function func100a_army_room 0x100a
|
|
register_function func100b_check_sanctum_accessed 0x100b
|
|
register_function func100c_check_army_defeated 0x100c
|
|
register_function func100e_wake_skedar_army 0x100e
|
|
register_function func100f_spikes_vulnerability 0x100f
|
|
register_function func1010_spike_ml 0x1010
|
|
register_function func1011_spike_mr 0x1011
|
|
register_function func1012_spike_bl 0x1012
|
|
register_function func1013_spike_br 0x1013
|
|
register_function func1014_spike_top 0x1014
|
|
register_function func1015_msg_specialpillars 0x1015
|
|
register_function func1016_msg_powersmoreconstant 0x1016
|
|
register_function func1017_msg_skedararmy 0x1017
|
|
register_function func1018_msg_cutoffthehead 0x1018
|
|
register_function func1019_blow_pillars 0x1019
|
|
register_function func101a_pointless 0x101a
|
|
register_function func101b_bug_throws_velvet 0x101b
|
|
register_function func101c_setup_corridor_lighting 0x101c
|
|
register_function func101d_remove_pillar_shadow 0x101d
|
|
register_function func0c00_intro_sounds 0x141e
|
|
register_function func0414_outro_sounds 0x141f
|
|
register_function func1020_show_phoenix 0x1020
|
|
register_function func1021_handle_mine 0x1021
|
|
register_function func1022_armyroom_exitdoors 0x1022
|
|
register_function func1023_setup_rtracker 0x1023
|
|
register_function func1024_check_grenades_wasted 0x1024
|
|
register_function func1025_unlock_doors_for_buddy 0x1025
|
|
register_function func1426_setup_portals 0x1426
|
|
register_function func1427_setup_lighting 0x1427
|
|
register_function func1028_buddybridge 0x1028
|
|
endfunctions
|
|
|
|
paths:
|
|
endpaths
|
|
|
|
.align 4
|